home *** CD-ROM | disk | FTP | other *** search
/ STraTOS 1997 April & May / STraTOS 1 - 1997 April & May.iso / CD01 / INTERNET / SITES / VOLANT / PDS.ZIP / SRC / MAIN.S < prev    next >
Encoding:
Text File  |  1995-09-21  |  61.2 KB  |  2,805 lines

  1. * NOMBRE MAXIMUM DE FICHIERS DANS LA BOITE
  2. NBR_FIC EQU 1024
  3. * NOMBRE DE LIGNES AFFICHABLES
  4. MAX_Y EQU 25
  5.  
  6.     opt    o+
  7.  
  8.     SECTION TEXT
  9. ********************************************************************************
  10. * RÉSERVATION DE LA MÉMOIRE PROGRAMME
  11.     MOVE.L    A7,A5
  12.     MOVE.L    4(A5),A5
  13.     MOVE.L    $C(A5),D0
  14.     ADD.L    $14(A5),D0
  15.     ADD.L    $1C(A5),D0
  16.     ADD.L    #$100,D0
  17.     MOVE.L    D0,-(SP)
  18.     MOVE.L    A5,-(SP)
  19.     CLR.W    -(SP)
  20.     MOVE.W    #$4A,-(SP)
  21.     TRAP    #1
  22.     LEA    12(SP),SP
  23.     TST.W    D0
  24.     BNE    INIT_ERROR
  25.     LEA    NEW_USP,A7
  26. * ON PRENDRE LE PLUS GRAND BLOC MÉMOIRE
  27.     MOVE.L    #-1,-(SP)
  28.     MOVE.W    #$48,-(SP)
  29.     TRAP    #1
  30.     ADDQ.L    #6,SP
  31.     TST.L    D0
  32.     BEQ    INIT_ERROR
  33.     MOVE.L    D0,D1
  34.     AND.L    #$FFFFFFF0,D0
  35.     MOVE.L    D0,MEMORY_LENGHT
  36.     MOVE.L    D0,END
  37.     MOVE.L    D0,BLEND
  38. * ON FAIT L'HISTORIQUE
  39.     LEA    HZOOM,A0
  40.     MOVE.W    #31,D0
  41. STCK:    CLR.L    (A0)+
  42.     MOVE.L    D1,(A0)+
  43.     DBRA.W    D0,STCK
  44. * ON LE RÉSERVE
  45.     MOVE.L    D1,-(SP)
  46.     MOVE.W    #$48,-(SP)
  47.     TRAP    #1
  48.     ADDQ.L    #6,SP
  49.     TST.L    D0
  50.     BMI.S    INIT_ERROR
  51.     MOVE.L    D0,MEMORY_START
  52.  
  53. * ON LA VIDE
  54.     MOVE.L    D0,A0
  55.     MOVE.L    MEMORY_LENGHT,D0
  56.     LSR.L    #2,D0
  57. CLEAR:    CLR.L    (A0)+
  58.     SUBQ.L    #1,D0
  59.     BNE.S    CLEAR
  60.  
  61. * PATH
  62.                 MOVE.W    #256*5+5,PATH
  63.     MOVE.L    #".\*.",PATH+2
  64.     MOVE.L    #"*"*256*65536,PATH+6
  65.  
  66. * POINTEUR DE SOURIS
  67.     MOVE.W    #320,MOUSEX
  68.     MOVE.W    #240,MOUSEY
  69. * ON EXÉCUTE LE PROGRAMME
  70.     DC.W    $A000
  71.     DC.W    $A00A
  72.  
  73.     PEA    PROGRAMME
  74.     MOVE.W    #38,-(SP)
  75.     TRAP    #14
  76.     ADDQ.L    #6,SP
  77.  
  78.     DC.W    $A009
  79.  
  80. * ON LIBèRE LA RAM
  81.     MOVE.L    MEMORY_START,-(SP)
  82.     MOVE.W    #$49,-(SP)
  83.     TRAP    #1
  84.     ADDQ.L    #6,SP
  85.     TST.L    D0
  86.     BMI.S    INIT_ERROR
  87. * EN REVOIR
  88.     PEA    SALUT
  89.     MOVE.W    #9,-(SP)
  90.     TRAP    #1
  91.     ADDQ.L    #6,SP
  92. * ON QUITTE
  93.     CLR.W    -(SP)
  94.     TRAP    #1
  95.  
  96. INIT_ERROR:    PEA    ERROR_TXT
  97.     MOVE.W    #9,-(SP)
  98.     TRAP    #1
  99.     MOVE.W    #7,-(SP)
  100.     TRAP    #1
  101.     ADDQ.L    #8,SP
  102.     CLR.W    -(SP)
  103.     TRAP    #1
  104. ********************************************************************************
  105. SALUT:    DC.B    27,"E",27,"f"
  106.     DC.B    "L'AUTEUR VOUS REMERCIE D'UTILISER THE PURE DIGITAL SOUND!",13,10
  107.     DC.B    "    *                   SIMON VOLANT                *",13,10
  108.     DC.B    "    *   8, RUE JEAN RACINE   OU   2, RUE DE MACON   *",13,10
  109.     DC.B    "    *   02190  GUIGNICOURT  (OR)  51100     REIMS   *",13,10
  110.     DC.B    "    *               FRANCE                 FRANCE   *",13,10
  111.     DC.B    "IF YOU WANT AN ENGLISH VERSION OF THIS SOFTWARE, WRITE!!!",13,10
  112.     DC.B    7,0
  113.     EVEN
  114. ********************************************************************************
  115. SYS_OPTION:    BSR    NO_KEY
  116.     CMPI.W    #1,RETURN
  117.     BEQ.S    SETP
  118.     CMPI.W    #2,RETURN
  119.     BEQ.S    SAVE
  120.     CMPI.W    #3,RETURN
  121.     BEQ.S    LOAD
  122.     CMPI.W    #4,RETURN
  123.     BEQ.S    EXPORT
  124.     CMPI.W    #5,RETURN
  125.     BEQ.S    DELETE
  126.     BRA    PROGRAMME
  127.  
  128. SETP:    BSR    SET_PATH
  129.     BRA    PROGRAMME
  130.  
  131. SAVE:    BSR    VERIF_PATH
  132.     BSR    GET_FNAME
  133.     TST.B    FILE_NAME+2
  134.     BEQ    PROGRAMME
  135.     BSR    FSAVE
  136.     BRA    PROGRAMME
  137.  
  138. EXPORT:    BSR    VERIF_PATH
  139.     BSR    BACKUP
  140.     BSR    FSAVE
  141.     BSR    FCONVERT
  142.     BSR    GET_FNAME
  143.     TST.B    FILE_NAME+2
  144.     BEQ    PROGRAMME
  145.     BSR    FSAVE
  146.     MOVE.L    EX_BLEND,BLEND
  147.     BSR    BACKUP
  148.     BSR    FLOAD
  149.     BSR    FDELETE
  150.     BRA    PROGRAMME
  151.  
  152. LOAD:    BSR    VERIF_PATH
  153.     BSR    FILE_SELECT
  154.     TST.B    FILE_NAME+2
  155.     BEQ    PROGRAMME
  156.     BSR    FLOAD
  157.     BRA    PROGRAMME
  158.  
  159. DELETE:    BSR    VERIF_PATH
  160.     BSR    FILE_SELECT
  161.     TST.B    FILE_NAME+2
  162.     BEQ    PROGRAMME
  163.     BSR    FDELETE
  164.     BRA    PROGRAMME
  165.  
  166.  
  167. NO_KEY:    MOVE.W    #$FF,-(SP)
  168.     MOVE.W    #6,-(SP)
  169.     TRAP    #1
  170.     ADDQ.L    #4,SP
  171.     TST    D0
  172.     BNE.S    NO_KEY
  173.     MOVE.W    #49,D0
  174. .WT:    STOP    #$2300
  175.     DBRA.W    D0,.WT
  176.     RTS
  177. ********************************************************************************
  178. * REGLAGE DU CHEMIN DES ENTRES/SORTIES
  179. SET_PATH:    MOVE.W    #80*256,PATH
  180.     PEA    PATH_ENT
  181.     MOVE.W    #9,-(SP)
  182.     TRAP    #1
  183.     ADDQ.L    #6,SP
  184.     PEA    PATH+2
  185.     MOVE.W    #9,-(SP)
  186.     TRAP    #1
  187.     ADDQ.L    #6,SP
  188.     PEA    PATH_TXT
  189.     MOVE.W    #9,-(SP)
  190.     TRAP    #1
  191.     ADDQ.L    #6,SP
  192.     PEA    PATH
  193.     MOVE.W    #$A,-(SP)
  194.     TRAP    #1
  195.     ADDQ.L    #6,SP
  196.     CLR.W    D0
  197.     LEA    PATH+2,A0
  198.     MOVE.B    -1(A0),D0
  199.     BEQ.S    VERIF_PATH
  200.     CLR.B    (A0,D0.W)
  201. * ON VÉRIFIE
  202. VERIF_PATH:    MOVE.W    #$FF,-(SP)
  203.     PEA    PATH+2
  204.     MOVE.W    #$4E,-(SP)
  205.     TRAP    #1
  206.     ADDQ.L    #8,SP
  207.     TST    D0
  208.     BEQ.S    .OK
  209.  
  210.     PEA    PATH_ERROR_TXT
  211.     MOVE.W    #9,-(SP)
  212.     TRAP    #1
  213.     MOVE.W    #7,-(SP)
  214.     TRAP    #1
  215.     ADDQ.L    #8,SP
  216.     BRA.S    SET_PATH
  217. .OK:    RTS
  218. ********************************************************************************
  219. * ON PREND LE NOM DU FICHIER
  220. GET_FNAME:    MOVE.W    #16*256,FNAME
  221.     PEA    FNAME_ENT
  222.     MOVE.W    #9,-(SP)
  223.     TRAP    #1
  224.     ADDQ.L    #6,SP
  225.     PEA    FNAME+2
  226.     MOVE.W    #9,-(SP)
  227.     TRAP    #1
  228.     ADDQ.L    #6,SP
  229.     PEA    FNAME_TXT
  230.     MOVE.W    #9,-(SP)
  231.     TRAP    #1
  232.     ADDQ.L    #6,SP
  233.     PEA    FNAME
  234.     MOVE.W    #$A,-(SP)
  235.     TRAP    #1
  236.     ADDQ.L    #6,SP
  237.     CLR.W    D0
  238.     LEA    FNAME+2,A0
  239.     MOVE.B    -1(A0),D0
  240.     BEQ.S    .FIN
  241.     CLR.B    (A0,D0.W)
  242. * ON VÉRIFIE
  243. .FIN:    LEA    FILE_NAME,A0
  244.     LEA    PATH+2,A1
  245.     CLR.W    D0
  246.     MOVE.B    PATH+1,D0
  247.     SUBQ.B    #1,D0
  248. .BCL2:    MOVE.B    (A1)+,(A0)+
  249.     DBRA.W    D0,.BCL2
  250. .BCL3:    CLR.B    (A0)
  251.     SUBQ.L    #1,A0
  252.     CMPI.B    #$5C,(A0)
  253.     BNE.S    .BCL3
  254.     ADDQ.L    #1,A0
  255.  
  256.     LEA    FNAME+2,A1
  257. .BCL1:    MOVE.B    (A1)+,(A0)+
  258.     BNE.S    .BCL1
  259.     RTS
  260. ********************************************************************************
  261. FSAVE:    CLR.W    -(SP)
  262.     PEA    FILE_NAME
  263.     MOVE.W    #$3C,-(SP)
  264.     TRAP    #1
  265.     ADDQ.L    #8,SP
  266.     MOVE.W    D0,HANDLE
  267.     BMI.S    .SAVE_ERROR2
  268.     MOVE.L    MEMORY_START,A0
  269.     ADD.L    BLSTART,A0
  270.     MOVE.L    BLEND,D0
  271.     SUB.L    BLSTART,D0
  272.     MOVE.L    A0,-(SP)
  273.     MOVE.L    D0,-(SP)
  274.     MOVE.W    HANDLE,-(SP)
  275.     MOVE.W    #$40,-(SP)
  276.     TRAP    #1
  277.     LEA    12(SP),SP
  278.     TST.L    D0
  279.     BMI.S    .SAVE_ERROR1
  280.     MOVE.W    HANDLE,-(SP)
  281.     MOVE.W    #$3E,-(SP)
  282.     TRAP    #1
  283.     ADDQ.L    #4,SP
  284.     RTS
  285. .SAVE_ERROR1:    MOVE.W    HANDLE,-(SP)
  286.     MOVE.W    #$3E,-(SP)
  287.     TRAP    #1
  288.     ADDQ.L    #4,SP
  289. .SAVE_ERROR2:    PEA    FILE_NAME
  290.     MOVE.W    #$41,-(SP)
  291.     TRAP    #1
  292.     PEA    SAVE_ERROR_TXT
  293.     MOVE.W    #9,-(SP)
  294.     TRAP    #1
  295.     MOVE.W    #7,-(SP)
  296.     TRAP    #1
  297.     LEA    14(SP),SP
  298.     RTS
  299. ********************************************************************************
  300. FDELETE:    PEA    FILE_NAME
  301.     MOVE.W    #$41,-(SP)
  302.     TRAP    #1
  303.     ADDQ.L    #6,SP
  304.     TST    D0
  305.     BEQ.S    .FIN
  306.     PEA    DELETE_ERROR_TXT
  307.     MOVE.W    #9,-(SP)
  308.     TRAP    #1
  309.     MOVE.W    #7,-(SP)
  310.     TRAP    #1
  311.     ADDQ.L    #8,SP
  312. .FIN:    RTS
  313. ********************************************************************************
  314. BACKUP:
  315.     PEA    BACKUP_TXT
  316.     MOVE.W    #9,-(SP)
  317.     TRAP    #1
  318.     ADDQ.L    #6,SP
  319.  
  320.     LEA    FILE_NAME,A0
  321.     LEA    PATH+2,A1
  322.     CLR.W    D0
  323.     MOVE.B    PATH+1,D0
  324.     SUBQ.B    #1,D0
  325. .BCL2:    MOVE.B    (A1)+,(A0)+
  326.     DBRA.W    D0,.BCL2
  327. .BCL3:    CLR.B    (A0)
  328.     SUBQ.L    #1,A0
  329.     CMPI.B    #$5C,(A0)
  330.     BNE.S    .BCL3
  331.     ADDQ.L    #1,A0
  332.     LEA    FBACKUP,A1
  333. .BCL1:    MOVE.B    (A1)+,(A0)+
  334.     BNE.S    .BCL1
  335.     RTS
  336. ********************************************************************************
  337. FLOAD:    CLR.W    -(SP)
  338.     PEA    FILE_NAME
  339.     MOVE.W    #$3D,-(SP)
  340.     TRAP    #1
  341.     ADDQ.L    #8,SP
  342.     MOVE.W    D0,HANDLE
  343.     BMI.S    .LOAD_ERROR2
  344.     MOVE.L    MEMORY_START,A0
  345.     ADD.L    BLSTART,A0
  346.     MOVE.L    BLEND,D0
  347.     SUB.L    BLSTART,D0
  348.     MOVE.L    A0,-(SP)
  349.     MOVE.L    D0,-(SP)
  350.     MOVE.W    HANDLE,-(SP)
  351.     MOVE.W    #$3F,-(SP)
  352.     TRAP    #1
  353.     LEA    12(SP),SP
  354.     TST.L    D0
  355.     BMI.S    .LOAD_ERROR1
  356.     ADD.L    BLSTART,D0
  357.     MOVE.L    D0,BLEND
  358.     MOVE.W    HANDLE,-(SP)
  359.     MOVE.W    #$3E,-(SP)
  360.     TRAP    #1
  361.     ADDQ.L    #4,SP
  362.     RTS
  363. .LOAD_ERROR1:    MOVE.W    HANDLE,-(SP)
  364.     MOVE.W    #$3E,-(SP)
  365.     TRAP    #1
  366.     ADDQ.L    #4,SP
  367. .LOAD_ERROR2:    PEA    FILE_NAME
  368.     MOVE.W    #$41,-(SP)
  369.     TRAP    #1
  370.     PEA    LOAD_ERROR_TXT
  371.     MOVE.W    #9,-(SP)
  372.     TRAP    #1
  373.     MOVE.W    #7,-(SP)
  374.     TRAP    #1
  375.     LEA    14(SP),SP
  376.     RTS
  377. ********************************************************************************
  378. * SELECTIONNEUR DE FICHIER
  379. FILE_SELECT:
  380. * ON EFFACE
  381.     CLR.W    STARTBIS
  382.     MOVE.W    #NBR_FIC-1,D0
  383.     LEA    DIR,A0
  384. .BCL:    CLR.L    (A0)+
  385.     CLR.L    (A0)+
  386.     CLR.L    (A0)+
  387.     CLR.L    (A0)+
  388.     DBRA.W    D0,.BCL
  389. * RECUPERER LES DONNEES SYSTEMES
  390.     PEA    DTA
  391.     MOVE.W    #$1A,-(SP)
  392.     TRAP    #1
  393.     ADDQ.L    #6,SP
  394. * FSFIRST: LA PREMIERE GIF DU REPERTOIRE
  395.     MOVE.W    #$27,-(SP)
  396.     PEA    PATH+2
  397.     MOVE.W    #$4E,-(SP)
  398.     TRAP    #1
  399.     ADDQ.L    #8,SP
  400.     TST    D0
  401.     BMI    .NOTHING
  402.     LEA    DIR,A0
  403. .NEXT:    LEA    DTA+30,A1
  404. * SUIVANT ???
  405.     MOVE.L    (A1),(A0)+
  406.     CLR.L    (A1)+
  407.     MOVE.L    (A1),(A0)+
  408.     CLR.L    (A1)+
  409.     MOVE.L    (A1),(A0)+
  410.     CLR.L    (A1)+
  411.     CLR.L    (A0)+
  412.     MOVE.L    A0,-(SP)
  413.     MOVE.W    #$4F,-(SP)
  414.     TRAP    #1
  415.     ADDQ.L    #2,SP
  416.     MOVE.L    (SP)+,A0
  417. * OUI, ON FAIT LE SAUT
  418.     TST    D0
  419.     BPL.S    .NEXT
  420. * LE TRI (A BULLE) DES FICHIERS
  421. .BULLE1:    LEA    DIR,A0
  422.     MOVEQ    #-1,D6
  423. .BULLE2:    CLR.L    D0
  424.     CLR.L    D1
  425.     MOVE.L    A0,-(SP)
  426.     MOVE.W    #13,D2
  427. .BULLE3:    MOVE.B    16(A0),D1
  428.     BEQ.S    .NO_SWAP
  429.     MOVE.B    (A0)+,D0
  430.     CMP.B    D0,D1
  431.     BHI.S    .NO_SWAP
  432.     BCS.S    .SWP
  433.     DBRA.W    D2,.BULLE3
  434. .SWP:    MOVE.L    (SP)+,A0
  435.     MOVE.L    16(A0),D1
  436.     MOVE.L    (A0),16(A0)
  437.     MOVE.L    D1,(A0)+
  438.     MOVE.L    16(A0),D1
  439.     MOVE.L    (A0),16(A0)
  440.     MOVE.L    D1,(A0)+
  441.     MOVE.L    16(A0),D1
  442.     MOVE.L    (A0),16(A0)
  443.     MOVE.L    D1,(A0)
  444.     SUBQ.L    #8,A0
  445.     CLR.L    D6
  446.     MOVE.L    A0,-(SP)
  447. .NO_SWAP:    MOVE.L    (SP)+,A0
  448.     LEA    16(A0),A0
  449.     TST    16(A0)
  450.     BNE.S    .BULLE2
  451. * Y-A-T'IL EU DES CHANGEMENT ??? OUI, ON SAUTE
  452.     TST    D6
  453.     BEQ.S    .BULLE1
  454. * LE SELECTEUR DE FICHIER (QUI TUE)
  455. .ALL:    PEA    SELECTEUR
  456.     MOVE.W    #9,-(SP)
  457.     TRAP    #1
  458.     ADDQ.L    #6,SP
  459.  
  460.     PEA    PATH+2
  461.     MOVE.W    #9,-(SP)
  462.     TRAP    #1
  463.     ADDQ.L    #6,SP
  464.  
  465.     MOVE.B    #">",TXT_POS
  466. * ON AFFICHE LES FICHIERS
  467.     LEA    DIR,A6
  468.     CLR.L    D0
  469.     MOVE.W    STARTBIS,D0
  470.     LSL.W    #4,D0
  471.     ADD.L    D0,A6
  472. .RETRY:    TST    ((MAX_Y-2)*16*6)-16(A6)
  473.     BNE.S    .KK
  474.     SUBQ.W    #1,STARTBIS
  475.     BMI.S    .TT
  476.     LEA    -16(A6),A6
  477.     BRA.S    .RETRY
  478. .TT:    CLR.W    STARTBIS
  479.     LEA    DIR,A6
  480. .KK:    MOVE.B    #32,X_TXT
  481.     MOVE.B    #32+2,Y_TXT
  482. .BCL1:    MOVE.L    A6,-(SP)
  483.     PEA    POS_TXT
  484.     MOVE.W    #9,-(SP)
  485.     TRAP    #1
  486.     ADDQ.L    #6,SP
  487.     MOVE.L    A6,-(SP)
  488.     MOVE.W    #9,-(SP)
  489.     TRAP    #1
  490.     ADDQ.L    #6,SP
  491.     MOVE.B    Y_TXT,D0
  492.     ADDQ.B    #1,D0
  493.     CMPI.B    #32+MAX_Y,D0
  494.     BNE.S    .NO_COL
  495.     MOVE.B    #32+2,D0
  496.     MOVE.B    X_TXT,D1
  497.     ADD.B    #13,D1
  498.     CMPI.B    #110,D1
  499.     BNE.S    .CONT
  500.     MOVE.L    (SP)+,A6
  501.     BRA.S    .SELECT
  502. .CONT:    MOVE.B    D1,X_TXT
  503. .NO_COL:    MOVE.B    D0,Y_TXT
  504.     MOVE.L    (SP)+,A6
  505.     LEA    16(A6),A6
  506.     BRA.S    .BCL1
  507. * SELECTEUR EN LUI-MEME
  508. .SELECT:    PEA    SEL_TXT
  509.     MOVE.W    #9,-(SP)
  510.     TRAP    #1
  511.     ADDQ.L    #6,SP
  512. .KEY:    MOVE.W    #7,-(SP)
  513.     TRAP    #1
  514.     ADDQ.L    #2,SP
  515.     MOVE.L    D0,-(SP)
  516.     MOVE.B    #"|",TXT_POS
  517.     PEA    SEL_TXT
  518.     MOVE.W    #9,-(SP)
  519.     TRAP    #1
  520.     ADDQ.L    #6,SP
  521.     MOVE.L    (SP)+,D0
  522. .K_PLUS:    CMPI.B    #"+",D0
  523.     BNE.S    .K_MOINS
  524.     ADD.W    #(MAX_Y-2)*6,STARTBIS
  525.     BRA    .ALL
  526. .K_MOINS:    CMPI.B    #"-",D0
  527.     BNE.S    .K_HAUT
  528.     SUB.W    #(MAX_Y-2)*6,STARTBIS
  529.     BPL.S    .KK0
  530.     CLR.W    STARTBIS
  531. .KK0:    BRA    .ALL
  532. .K_HAUT:    SWAP    D0
  533.     CMPI.B    #$48,D0
  534.     BNE.S    .K_BAS
  535.     MOVE.B    Y_POS,D1
  536.     SUBQ.B    #1,D1
  537.     CMPI.B    #32+2,D1
  538.     BPL.S    .KK1
  539.     MOVE.B    #32+2,D1
  540. .KK1:    MOVE.B    D1,Y_POS
  541. .K_BAS:    CMPI.B    #$50,D0
  542.     BNE.S    .K_DROITE
  543.     MOVE.B    Y_POS,D1
  544.     ADDQ.B    #1,D1
  545.     CMPI.B    #32+MAX_Y-1,D1
  546.     BMI.S    .KK2
  547.     MOVE.B    #32+MAX_Y-1,D1
  548. .KK2:    MOVE.B    D1,Y_POS
  549. .K_DROITE:    CMPI.B    #$4D,D0
  550.     BNE.S    .K_GAUCHE
  551.     MOVE.B    X_POS,D1
  552.     ADD.B    #13,D1
  553.     CMPI.B    #32+65,D1
  554.     BMI.S    .KK3
  555.     MOVE.B    #32+65,D1
  556. .KK3:    MOVE.B    D1,X_POS
  557. .K_GAUCHE:    CMPI.B    #$4B,D0
  558.     BNE.S    .K_ENT
  559.     MOVE.B    X_POS,D1
  560.     SUB.B    #13,D1
  561.     CMPI.B    #32,D1
  562.     BPL.S    .KK4
  563.     MOVE.B    #32,D1
  564. .KK4:    MOVE.B    D1,X_POS
  565. .K_ENT:    CMPI.B    #$1C,D0
  566.     BNE.S    .K_ESC
  567.     BRA.S    .OK
  568. .K_ESC:    CMPI.B    #$01,D0
  569.     BNE.S    .K_SPC
  570.     BRA    .ABORT
  571. .K_SPC:    CMPI.B    #$39,D0
  572.     BNE.S    .K_END
  573.     BRA    FILE_SELECT
  574. .K_END:    MOVE.B    #">",TXT_POS
  575.     PEA    SEL_TXT
  576.     MOVE.W    #9,-(SP)
  577.     TRAP    #1
  578.     ADDQ.L    #6,SP
  579.     BRA    .KEY
  580. .OK:    LEA    FILE_NAME,A0
  581.     LEA    PATH+2,A1
  582.     CLR.W    D0
  583.     MOVE.B    PATH+1,D0
  584.     SUBQ.B    #1,D0
  585. .BCL2:    MOVE.B    (A1)+,(A0)+
  586.     DBRA.W    D0,.BCL2
  587. .BCL3:    CLR.B    (A0)
  588.     SUBQ.L    #1,A0
  589.     CMPI.B    #$5C,(A0)
  590.     BNE.S    .BCL3
  591.     ADDQ.L    #1,A0
  592.     LEA    DIR,A1
  593.     CLR.L    D0
  594.     MOVE.B    X_POS,D0
  595.     SUB.B    #32,D0
  596.     DIVU.W    #13,D0
  597.     MULU.W    #MAX_Y-2,D0
  598.     CLR.L    D1
  599.     MOVE.B    Y_POS,D1
  600.     SUB.B    #32+2,D1
  601.     ADD.W    D1,D0
  602.     ADD.W    STARTBIS,D0
  603.     LSL.L    #4,D0
  604.     ADD.L    D0,A1
  605.     TST.B    (A1)
  606.     BEQ.S    .ABORT
  607.     LEA    FNAME+2,A2
  608. .BCL4:    MOVE.B    (A1),(A0)+
  609.     MOVE.B    (A1)+,(A2)+
  610.     BNE.S    .BCL4
  611.     RTS
  612. .ABORT:    CLR.L    FILE_NAME
  613.     RTS
  614. .NOTHING:    PEA    NOTHING_TXT
  615.     MOVE.W    #9,-(SP)
  616.     TRAP    #1
  617.     MOVE.W    #7,-(SP)
  618.     TRAP    #1
  619.     ADDQ.L    #8,SP
  620.     RTS
  621. ********************************************************************************
  622. FCONVERT:
  623.     MOVE.L    BLEND,EX_BLEND
  624.  
  625. * FRÉQUENCE DE DESTINATION
  626. .P0:
  627.     PEA    FRQ_TXT
  628.     MOVE.W    #9,-(SP)
  629.     TRAP    #1
  630.     ADDQ.L    #6,SP
  631.     MOVE.W    #6*256,REP
  632.     PEA    REP
  633.     MOVE.W    #10,-(SP)
  634.     TRAP    #1
  635.     ADDQ.L    #6,SP
  636.  
  637.     BSR    REP_CONV
  638.     CMPI.W    #-1,D0
  639.     BEQ.S    FCONVERT
  640.     MOVE.W    D0,FRQ_D
  641.     BEQ    .P1
  642. * FREQUENCE SOURCE
  643.     CLR.W    D0
  644.     MOVE.B    $FFFF8935.W,D0
  645.     LEA    FRQ,A0
  646.     MOVE.W    (A0,D0.W*2),FRQ_S
  647. * ON CONVERTIT
  648.     CLR.L    D0
  649.     CLR.L    D1
  650. * UNE PARTIE ENTIERE
  651.     MOVE.W    FRQ_S,D0
  652.     MOVE.W    FRQ_D,D1
  653.     DIVU.W    D1,D0
  654. * ON CHERCHE UN RESTE
  655.     CLR.L    D2
  656.     MOVE.W    D0,D2
  657.     MULU.W    FRQ_D,D2
  658.     MOVE.W    FRQ_S,D1
  659.     SUB.W    D2,D1
  660.     SWAP    D1
  661.     DIVU.W    FRQ_D,D1
  662. * LET'S GO!
  663.     MOVE.L    MEMORY_START,A0
  664.     ADD.L    BLSTART,A0    *SOURCE
  665.     MOVE.L    A0,A1    *DESTINATION
  666.     MOVE.L    BLEND,D7    *BOUCLE PRINCIPALE
  667.     SUB.L    BLSTART,D7
  668.     CLR.L    D3    *RESTE
  669. .BCL0:    CLR.L    D4    *GAUCHE
  670.     CLR.L    D5    *DROITE
  671.     MOVE.L    D5,A6
  672.     MOVE.W    D0,D6
  673. .BCL1:    CLR.L    D2
  674.     MOVE.W    (A0)+,D2    *ON ADD
  675.     EXT.L    D2
  676.     ADD.L    D2,D4
  677.     CLR.L    D2
  678.     MOVE.W    (A0)+,D2    *IDEM
  679.     EXT.L    D2
  680.     ADD.L    D2,D5
  681.     SUBQ.L    #4,D7
  682.     SUBQ.W    #1,D6
  683.     BNE.S    .BCL1
  684.     MOVE.W    D0,D6
  685.     ADD.W    D1,D3
  686.     BCC.S    .C2
  687. .C1:    CLR.L    D2
  688.     MOVE.W    (A0)+,D2    *ON ADD
  689.     EXT.L    D2
  690.     ADD.L    D2,D4
  691.     CLR.L    D2
  692.     MOVE.W    (A0)+,D2    *IDEM
  693.     EXT.L    D2
  694.     ADD.L    D2,D5
  695.     SUBQ.L    #4,D7
  696.     ADDQ.W    #1,D6
  697. .C2:    DIVS.W    D6,D4
  698.     DIVS.W    D6,D5
  699.     MOVE.W    D4,(A1)+
  700.     MOVE.W    D5,(A1)+
  701.     TST.L    D7
  702.     BPL.S    .BCL0
  703.     SUBQ.L    #4,A1
  704.     SUB.L    MEMORY_START,A1
  705.     MOVE.L    A1,BLEND
  706.  
  707. .P1:    PEA    V_TXT
  708.     MOVE.W    #9,-(SP)
  709.     TRAP    #1
  710.     ADDQ.L    #6,SP
  711.     MOVE.W    #1,-(SP)
  712.     TRAP    #1
  713.     ADDQ.L    #2,SP
  714.  
  715.     MOVE.L    MEMORY_START,A0
  716.     ADD.L    BLSTART,A0    *SOURCE
  717.     MOVE.L    A0,A1    *DESTINATION
  718.     MOVE.L    BLEND,D7    *BOUCLE PRINCIPALE
  719.     SUB.L    BLSTART,D7
  720.     CMPI.B    #"m",D0
  721.     BEQ.S    .MONO
  722.     CMPI.B    #"M",D0
  723.     BEQ.S    .MONO
  724.     CMPI.B    #"g",D0
  725.     BEQ.S    .GAUCHE
  726.     CMPI.B    #"G",D0
  727.     BEQ.S    .GAUCHE
  728.     CMPI.B    #"d",D0
  729.     BEQ.S    .DROITE
  730.     CMPI.B    #"D",D0
  731.     BEQ.S    .DROITE
  732.  
  733.  
  734. .P3:    PEA    B_TXT
  735.     MOVE.W    #9,-(SP)
  736.     TRAP    #1
  737.     ADDQ.L    #6,SP
  738.     MOVE.W    #1,-(SP)
  739.     TRAP    #1
  740.     ADDQ.L    #2,SP
  741.  
  742.     MOVE.L    MEMORY_START,A0
  743.     ADD.L    BLSTART,A0    *SOURCE
  744.     MOVE.L    A0,A1    *DESTINATION
  745.     MOVE.L    BLEND,D7    *BOUCLE PRINCIPALE
  746.     SUB.L    BLSTART,D7
  747.     CMPI.B    #"8",D0
  748.     BEQ.S    .8BITS
  749.  
  750.     RTS
  751.  
  752. .MONO:    CLR.L    D1
  753.     CLR.L    D2
  754.     MOVE.W    (A0)+,D1
  755.     EXT.L    D1
  756.     MOVE.W    (A0)+,D2
  757.     EXT.L    D2
  758.     ADD.L    D2,D1
  759.     LSR.L    #1,D1
  760.     MOVE.W    D1,(A1)+
  761.     SUBQ.L    #4,D7
  762.     BNE.S    .MONO
  763.     SUBQ.L    #2,A1
  764.     SUB.L    MEMORY_START,A1
  765.     MOVE.L    A1,BLEND
  766.     BRA.S    .P3
  767.  
  768. .GAUCHE:    MOVE.W    (A0)+,(A1)+
  769.     CLR.W    (A0)+
  770.     SUBQ.L    #4,D7
  771.     BNE.S    .GAUCHE
  772.     SUBQ.L    #2,A1
  773.     SUB.L    MEMORY_START,A1
  774.     MOVE.L    A1,BLEND
  775.     BRA.S    .P3
  776.  
  777. .DROITE:    CLR.W    (A0)+
  778.     MOVE.W    (A0)+,(A1)+
  779.     SUBQ.L    #4,D7
  780.     BNE.S    .DROITE
  781.     SUBQ.L    #2,A1
  782.     SUB.L    MEMORY_START,A1
  783.     MOVE.L    A1,BLEND
  784.     BRA    .P3
  785.  
  786.  
  787. .8BITS:    MOVE.B    (A0)+,(A1)+
  788.     CLR.B    (A0)+
  789.     SUBQ.L    #2,D7
  790.     BNE.S    .8BITS
  791.     SUBQ.L    #1,A1
  792.     SUB.L    MEMORY_START,A1
  793.     MOVE.L    A1,BLEND
  794.  
  795.     PEA    S_TXT
  796.     MOVE.W    #9,-(SP)
  797.     TRAP    #1
  798.     ADDQ.L    #6,SP
  799.     MOVE.W    #1,-(SP)
  800.     TRAP    #1
  801.     ADDQ.L    #2,SP
  802.  
  803.     MOVE.L    MEMORY_START,A0
  804.     ADD.L    BLSTART,A0    *SOURCE
  805.     MOVE.L    A0,A1    *DESTINATION
  806.     MOVE.L    BLEND,D7    *BOUCLE PRINCIPALE
  807.     SUB.L    BLSTART,D7
  808.     CMPI.B    #"n",D0
  809.     BEQ.S    .NON_SIGNE
  810.     CMPI.B    #"N",D0
  811.     BEQ.S    .NON_SIGNE
  812.     RTS
  813.  
  814. .NON_SIGNE:    EOR.B    #128,(A0)+
  815.     SUBQ.L    #1,D7
  816.     BNE.S    .NON_SIGNE
  817.     RTS
  818.  
  819. REP_CONV:    CLR.W    D0
  820.     LEA    REP+2,A0
  821. .NEXT:    TST.B    (A0)
  822.     BEQ.S    .FIN
  823.     CLR.W    D1
  824.     MOVE.B    (A0)+,D1
  825.     SUB.W    #"0",D1
  826.     BMI.S    .ERROR
  827.     CMPI.B    #10,D1
  828.     BPL.S    .ERROR
  829.     MULU.W    #10,D0
  830.     ADD.W    D1,D0
  831.     BRA.S    .NEXT
  832. .FIN:    RTS
  833. .ERROR:    MOVE.W    #-1,D0
  834.     RTS
  835.  
  836.  
  837. FRQ_TXT:    DC.B    27,"E",27,"e"
  838.     DC.B    "****************************************************",13,10
  839.     DC.B    "*** EXPORTATION DU FICHIER: FAITES VOTRE FORMAT! ***",13,10
  840.     DC.B    "****************************************************",13,10,10
  841.     DC.B    "1) ENTREZ LA FREQUENCE EN HERTZ (Ex:25033) OU RIEN POUR GARDER L'ORIGINALE",13,10
  842.     DC.B    0
  843.     EVEN
  844. V_TXT:    DC.B    13,10,10
  845.     DC.B    "2) SON (M)ono / (G)auche seulement / (D)roite seulement OU RIEN POUR STEREO",13,10
  846.     DC.B    0
  847.     EVEN
  848. B_TXT:    DC.B    13,10,10
  849.     DC.B    "3) SON (8) BITS OU RIEN POUR 16 BITS",13,10
  850.     DC.B    0
  851.     EVEN
  852. S_TXT:    DC.B    13,10,10
  853.     DC.B    "4) SON (N)on signé OU RIEN POUR SIGNÉ",13,10
  854.     DC.B    0
  855.     EVEN
  856.  
  857. REP:    DS.B    8
  858.     EVEN
  859. FRQ:    DC.W    0,49170,32780,24585,19668,16390,0,12292,0,9834,0,8195
  860. FRQ_S:    DC.W    60000
  861. FRQ_D:    DC.W    59000
  862. EX_BLEND:    DC.L    0
  863. ********************************************************************************
  864. PROGRAMME:    BSR    NO_KEY
  865.     MOVE.L    SP,OLD_SP
  866.     LEA    NEW_SP,SP
  867.     BSR.S    SAVEVECTORS
  868.     BSR    MAIN
  869. DBUG:    BSR    RES_PAL
  870.     BSR    RESTOREVECTORS
  871.     MOVE.L    OLD_SP,SP
  872.     MOVE.W    #$2300,SR
  873.     TST    RETURN
  874.     BNE    SYS_OPTION
  875.     RTS
  876. DEBUGGER:    MOVE.W    #$2700,SR
  877.     MOVE.L    OLD_SP,SP
  878.     BRA.S    DBUG
  879. SAVEVECTORS:    MOVE.W    #$2700,SR
  880.     LEA    SAVE_ALL,A6
  881.     MOVE.B    $FFFF8206.W,(A6)+
  882.     MOVE.B    $FFFF820A.W,(A6)+
  883.     MOVE.B    $FFFF8260.W,(A6)+
  884.     MOVE.B    $FFFF8265.W,(A6)+
  885.     MOVE.B    $FFFF8201.W,(A6)+
  886.     MOVE.B    $FFFF8203.W,(A6)+
  887.     MOVE.B    $FFFF820D.W,(A6)+
  888.     CLR.B    (A6)+
  889.     MOVE.W    $FFFF8280.W,(A6)+
  890.     MOVE.W    $FFFF82A0.W,(A6)+
  891.     MOVE.W    $FFFF820E.W,(A6)+
  892.     MOVE.W    $FFFF8210.W,(A6)+
  893.     MOVE.W    $FFFF8266.W,(A6)+
  894.     MOVE.W    $FFFF8282.W,(A6)+
  895.     MOVE.W    $FFFF8284.W,(A6)+
  896.     MOVE.W    $FFFF8286.W,(A6)+
  897.     MOVE.W    $FFFF8288.W,(A6)+
  898.     MOVE.W    $FFFF828A.W,(A6)+
  899.     MOVE.W    $FFFF828C.W,(A6)+
  900.     MOVE.W    $FFFF828E.W,(A6)+
  901.     MOVE.W    $FFFF8290.W,(A6)+
  902.     MOVE.W    $FFFF82A2.W,(A6)+
  903.     MOVE.W    $FFFF82A4.W,(A6)+
  904.     MOVE.W    $FFFF82A6.W,(A6)+
  905.     MOVE.W    $FFFF82A8.W,(A6)+
  906.     MOVE.W    $FFFF82AA.W,(A6)+
  907.     MOVE.W    $FFFF82AC.W,(A6)+
  908.     MOVE.W    $FFFF82AE.W,(A6)+
  909.     MOVE.W    $FFFF82B0.W,(A6)+
  910.     MOVE.W    $FFFF82C0.W,(A6)+
  911.     MOVE.W    $FFFF82C2.W,(A6)+
  912.     MOVE.B    $FFFFFA07.W,(A6)+
  913.     MOVE.B    $FFFFFA09.W,(A6)+
  914.     MOVE.B    $FFFFFA13.W,(A6)+
  915.     MOVE.B    $FFFFFA15.W,(A6)+
  916.     MOVE.B    $FFFFFA17.W,(A6)+
  917.     MOVE.B    $FFFFFA19.W,(A6)+
  918.     MOVE.B    $FFFFFA1B.W,(A6)+
  919.     MOVE.L    $68.W,(A6)+
  920.     MOVE.L    $70.W,(A6)+
  921.     MOVE.L    $118.W,(A6)+
  922.     MOVE.L    $120.W,(A6)+
  923.     MOVE.L    $134.W,(A6)+
  924.     MOVE.L    $08.W,(A6)+
  925.     MOVE.L    $0C.W,(A6)+
  926.     MOVE.L    $10.W,(A6)+
  927.     MOVE.L    $14.W,(A6)+
  928.     MOVE.L    $18.W,(A6)+
  929.     MOVE.L    $1C.W,(A6)+
  930.     MOVE.L    $20.W,(A6)+
  931.     MOVE.L    $24.W,(A6)+
  932.     MOVE.L    $28.W,(A6)+
  933.     MOVE.L    $2C.W,(A6)+
  934.     MOVE.L    $3C.W,(A6)+
  935.     MOVE.L    $80.W,(A6)+
  936.     MOVE.L    $84.W,(A6)+
  937.     MOVE.L    $88.W,(A6)+
  938.     MOVE.L    $8C.W,(A6)+
  939.     MOVE.L    $90.W,(A6)+
  940.     MOVE.L    $94.W,(A6)+
  941.     MOVE.L    $98.W,(A6)+
  942.     MOVE.L    $9C.W,(A6)+
  943.     MOVE.L    $A0.W,(A6)+
  944.     MOVE.L    $A4.W,(A6)+
  945.     MOVE.L    $A8.W,(A6)+
  946.     MOVE.L    $AC.W,(A6)+
  947.     MOVE.L    $B0.W,(A6)+
  948.     MOVE.L    $B4.W,(A6)+
  949.     MOVE.L    $B8.W,(A6)+
  950.     MOVE.L    $BC.W,(A6)+
  951.     LEA    DEBUGGER,A0
  952.     MOVE.L    A0,$08.W
  953.     MOVE.L    A0,$0C.W
  954.     MOVE.L    A0,$10.W
  955.     MOVE.L    A0,$14.W
  956.     MOVE.L    A0,$18.W
  957.     MOVE.L    A0,$1C.W
  958.     MOVE.L    A0,$20.W
  959.     MOVE.L    A0,$24.W
  960.     MOVE.L    A0,$28.W
  961.     MOVE.L    A0,$2C.W
  962.     MOVE.L    A0,$3C.W
  963.     MOVE.L    A0,$80.W
  964.     MOVE.L    A0,$84.W
  965.     MOVE.L    A0,$88.W
  966.     MOVE.L    A0,$8C.W
  967.     MOVE.L    A0,$90.W
  968.     MOVE.L    A0,$94.W
  969.     MOVE.L    A0,$98.W
  970.     MOVE.L    A0,$9C.W
  971.     MOVE.L    A0,$A0.W
  972.     MOVE.L    A0,$A4.W
  973.     MOVE.L    A0,$A8.W
  974.     MOVE.L    A0,$AC.W
  975.     MOVE.L    A0,$B0.W
  976.     MOVE.L    A0,$B4.W
  977.     MOVE.L    A0,$B8.W
  978.     MOVE.L    A0,$BC.W
  979.     MOVE.L    #IT_NULL,$70.W
  980.     CLR.W    D0
  981.     MOVE.B    D0,$FFFFFA07.W
  982.     MOVE.B    D0,$FFFFFA09.W
  983.     MOVE.B    D0,$FFFFFA13.W
  984.     MOVE.B    D0,$FFFFFA15.W
  985.     BCLR.B    #3,$FFFFFA17.W
  986.     BRA    KFLUSH
  987. ********************************************************************************
  988. RESTOREVECTORS:    MOVE.W    #$2700,SR
  989.     CLR.W    D0
  990.     MOVE.B    D0,$FFFFFA07.W
  991.     MOVE.B    D0,$FFFFFA09.W
  992.     MOVE.B    D0,$FFFFFA13.W
  993.     MOVE.B    D0,$FFFFFA15.W
  994.     MOVE.L    #IT_NULL,$70.W
  995.     LEA    SAVE_ALL,A6
  996.     STOP    #$2300
  997.     STOP    #$2300
  998.     MOVE.B    (A6)+,$FFFF8206.W
  999.     MOVE.B    (A6)+,$FFFF820A.W
  1000.     MOVE.B    (A6)+,$FFFF8260.W
  1001.     MOVE.B    (A6)+,$FFFF8265.W
  1002.     MOVE.B    (A6)+,$FFFF8201.W
  1003.     MOVE.B    (A6)+,$FFFF8203.W
  1004.     MOVE.B    (A6)+,$FFFF820D.W
  1005.     CLR.B    (A6)+
  1006.     MOVE.W    (A6)+,$FFFF8280.W
  1007.     MOVE.W    (A6)+,$FFFF82A0.W
  1008.     MOVE.W    (A6)+,$FFFF820E.W
  1009.     MOVE.W    (A6)+,$FFFF8210.W
  1010.     MOVE.W    (A6)+,$FFFF8266.W
  1011.     MOVE.W    (A6)+,$FFFF8282.W
  1012.     MOVE.W    (A6)+,$FFFF8284.W
  1013.     MOVE.W    (A6)+,$FFFF8286.W
  1014.     MOVE.W    (A6)+,$FFFF8288.W
  1015.     MOVE.W    (A6)+,$FFFF828A.W
  1016.     MOVE.W    (A6)+,$FFFF828C.W
  1017.     MOVE.W    (A6)+,$FFFF828E.W
  1018.     MOVE.W    (A6)+,$FFFF8290.W
  1019.     MOVE.W    (A6)+,$FFFF82A2.W
  1020.     MOVE.W    (A6)+,$FFFF82A4.W
  1021.     MOVE.W    (A6)+,$FFFF82A6.W
  1022.     MOVE.W    (A6)+,$FFFF82A8.W
  1023.     MOVE.W    (A6)+,$FFFF82AA.W
  1024.     MOVE.W    (A6)+,$FFFF82AC.W
  1025.     MOVE.W    (A6)+,$FFFF82AE.W
  1026.     MOVE.W    (A6)+,$FFFF82B0.W
  1027.     MOVE.W    (A6)+,$FFFF82C0.W
  1028.     MOVE.W    (A6)+,$FFFF82C2.W
  1029.     MOVE.B    (A6)+,$FFFFFA07.W
  1030.     MOVE.B    (A6)+,$FFFFFA09.W
  1031.     MOVE.B    (A6)+,$FFFFFA13.W
  1032.     MOVE.B    (A6)+,$FFFFFA15.W
  1033.     MOVE.B    (A6)+,$FFFFFA17.W
  1034.     MOVE.B    (A6)+,$FFFFFA19.W
  1035.     MOVE.B    (A6)+,$FFFFFA1B.W
  1036.     MOVE.L    (A6)+,$68.W
  1037.     MOVE.L    (A6)+,$70.W
  1038.     MOVE.L    (A6)+,$118.W
  1039.     MOVE.L    (A6)+,$120.W
  1040.     MOVE.L    (A6)+,$134.W
  1041.     MOVE.L    (A6)+,$08.W
  1042.     MOVE.L    (A6)+,$0C.W
  1043.     MOVE.L    (A6)+,$10.W
  1044.     MOVE.L    (A6)+,$14.W
  1045.     MOVE.L    (A6)+,$18.W
  1046.     MOVE.L    (A6)+,$1C.W
  1047.     MOVE.L    (A6)+,$20.W
  1048.     MOVE.L    (A6)+,$24.W
  1049.     MOVE.L    (A6)+,$28.W
  1050.     MOVE.L    (A6)+,$2C.W
  1051.     MOVE.L    (A6)+,$3C.W
  1052.     MOVE.L    (A6)+,$80.W
  1053.     MOVE.L    (A6)+,$84.W
  1054.     MOVE.L    (A6)+,$88.W
  1055.     MOVE.L    (A6)+,$8C.W
  1056.     MOVE.L    (A6)+,$90.W
  1057.     MOVE.L    (A6)+,$94.W
  1058.     MOVE.L    (A6)+,$98.W
  1059.     MOVE.L    (A6)+,$9C.W
  1060.     MOVE.L    (A6)+,$A0.W
  1061.     MOVE.L    (A6)+,$A4.W
  1062.     MOVE.L    (A6)+,$A8.W
  1063.     MOVE.L    (A6)+,$AC.W
  1064.     MOVE.L    (A6)+,$B0.W
  1065.     MOVE.L    (A6)+,$B4.W
  1066.     MOVE.L    (A6)+,$B8.W
  1067.     MOVE.L    (A6)+,$BC.W
  1068. KFLUSH:    MOVE.B    $FFFFFC00.W,D0
  1069.     BTST    #0,D0
  1070.     BEQ.S    KFOK
  1071.     MOVE.B    $FFFFFC02.W,D0
  1072.     BRA.S    KFLUSH
  1073. KFOK:    RTS
  1074. IT_NULL:    RTE
  1075. ********************************************************************************
  1076. SAV_PAL:    LEA    PALETTE(PC),A1
  1077.     LEA    $FFFF9800.W,A0
  1078.     BRA.S    COPY_PAL
  1079. RES_PAL:    LEA    PALETTE(PC),A0
  1080.     LEA    $FFFF9800.W,A1
  1081. COPY_PAL:    MOVE.L    #255,D0
  1082. .BCL:    MOVE.L    (A0)+,(A1)+
  1083.     DBRA.W    D0,.BCL
  1084.     RTS
  1085. ********************************************************************************
  1086. MAIN:    BSR.S    SAV_PAL
  1087.  
  1088. RE_MAIN:    MOVE.W    #$2700,SR
  1089.     MOVE.B    #$65,$FFFF8007.W
  1090.     MOVE.W    #$3111,D0
  1091.     MOVEC    D0,CACR
  1092. * NOUVELLE RESOLUTION / NOUVEL ECRAN
  1093.     MOVE.L    #ECRAN+256,D0
  1094.     LEA    ECR,A0
  1095.     CLR.B    D0
  1096.     MOVE.L    D0,(A0)
  1097.     MOVE.B    1(A0),$FFFF8201.W
  1098.     MOVE.B    2(A0),$FFFF8203.W
  1099.     MOVE.B    3(A0),$FFFF820D.W
  1100.     BSR    NEW_RESOL
  1101.     LEA    NEW_PALETTE,A0
  1102.     LEA    $FFFF9800.W,A1
  1103.     MOVEQ.L    #15,D0
  1104. .BCL:    MOVE.L    (A0)+,(A1)+
  1105.     DBRA.W    D0,.BCL
  1106. * ON REGLE L'INTERRUPTION CLAVIER
  1107. * ON REGLE LA SOURIS EN RELATIF
  1108.     MOVE.B    #$8,D0
  1109.     BSR    BOURRE
  1110. * ON INDIQUE CHAQUE MOUVEMENT
  1111.     MOVE.B    #$0B,D0
  1112.     BSR    BOURRE
  1113.     MOVE.B    #$01,D0
  1114.     BSR    BOURRE
  1115.     MOVE.B    #$01,D0
  1116.     BSR    BOURRE
  1117. * ON CALCULE LE SPRITE
  1118.     BSR    MK_MOUSE
  1119. * ON ACTIVE
  1120. .KFLUSH:    BTST.B    #0,$FFFFFC00.W
  1121.     BEQ.S    .KFOK
  1122.     MOVE.B    $FFFFFC02.W,D0
  1123.     BRA.S    .KFLUSH
  1124. .KFOK:    MOVE.L    ECR,EXMOUSE
  1125.     CLR.W    FMOUSE
  1126.     MOVE.L    #CLAV,$118.W
  1127.     MOVE.L    #CHK,$18.W
  1128.     BSET    #6,$FFFFFA09.W
  1129.     BSET    #6,$FFFFFA15.W
  1130.     MOVE.L    #VBL,$70.W
  1131.     MOVE.W    #$2300,SR
  1132.     TST    ACTUAL
  1133.     BNE.S    .CONT
  1134.     JSR    BEGIN
  1135.     BRA.S    EXIT
  1136. .CONT:    JSR    GENERAL
  1137. EXIT:
  1138. .WAIT:    TST.B    BOUTON
  1139.     BNE.S    .WAIT
  1140. * ON RESET LE CLAVIER
  1141.     MOVE.B    #$80,D0
  1142.     BSR    BOURRE
  1143.     MOVE.B    #$01,D0
  1144.     BSR    BOURRE
  1145.     RTS
  1146. ********************************************************************************
  1147. VBL:    MOVEM.L    D0-A6,-(SP)
  1148.     BSR    DISPLAY_MOUSE
  1149.  
  1150. .DEC14:    TST    $FFFF9838.W
  1151.     BEQ.S    .DEC15
  1152.     SUB.L    #$01000000,(NEW_PALETTE+(14*4))
  1153.  
  1154. .DEC15:    TST    $FFFF983C.W
  1155.     BEQ.S    .GAUCHE
  1156.     SUB.L    #$01000000,(NEW_PALETTE+(15*4))
  1157.  
  1158. .GAUCHE:    BTST    #1,$FFFF893C.W
  1159.     BEQ.S    .DROITE
  1160.     MOVE.L    #$FF000000,(NEW_PALETTE+(14*4))
  1161.     TST.B    DMA_AUTO
  1162.     BEQ.S    .DROITE
  1163.     SUBQ.B    #1,DMA_INPUT_L
  1164.     BPL.S    .CT1
  1165.     CLR.B    DMA_INPUT_L
  1166. .CT1:    CMPI.W    #"IN",ACTUAL
  1167.     BNE.S    .CT3
  1168.     CLR.L    ACTUAL
  1169. .CT3:    BSR    SET_VOL
  1170.  
  1171. .DROITE:    BTST    #0,$FFFF893C.W
  1172.     BEQ.S    .CLR_FLAG
  1173.     MOVE.L    #$FF000000,(NEW_PALETTE+(15*4))
  1174.     TST.B    DMA_AUTO
  1175.     BEQ.S    .CLR_FLAG
  1176.     SUBQ.B    #1,DMA_INPUT_R
  1177.     BPL.S    .CT2
  1178.     CLR.B    DMA_INPUT_R
  1179. .CT2:    CMPI.W    #"IN",ACTUAL
  1180.     BNE.S    .CT4
  1181.     CLR.L    ACTUAL
  1182. .CT4:    BSR    SET_VOL
  1183.  
  1184.  
  1185. .CLR_FLAG:    CLR.B    $FFFF893C.W
  1186.  
  1187.     LEA    NEW_PALETTE,A0
  1188.     LEA    $FFFF9800.W,A1
  1189.     MOVEQ.L    #15,D0
  1190. .BCL:    MOVE.L    (A0)+,(A1)+
  1191.     DBRA.W    D0,.BCL
  1192.  
  1193.     MOVE.W    #$FFFF,FVBL
  1194.     MOVEM.L    (SP)+,D0-A6
  1195.     RTE
  1196.  
  1197. ********************************************************************************
  1198. WVBL:    CLR.W    FVBL
  1199. .VBL:    TST    FVBL
  1200.     BEQ.S    .VBL
  1201.     RTS
  1202. ********************************************************************************
  1203. * INTERRUPTION CLAVIER / SOURIS
  1204. CLAV:    MOVE.W    D0,-(SP)
  1205.     MOVE.W    D1,-(SP)
  1206.     MOVE.B    $FFFFFC02.W,D0
  1207.     MOVE.B    D0,D1
  1208.     AND.B    #$F8,D0
  1209.     CMPI.B    #$F8,D0
  1210.     BNE.S    .KEY
  1211.     AND.B    #$03,D1
  1212.     MOVE.B    D1,BOUTON
  1213.     MOVE.L    #MX,$118.W
  1214.     MOVE.W    (SP)+,D1
  1215.     MOVE.W    (SP)+,D0 
  1216.     RTE
  1217. .KEY:    MOVE.B    D1,KEY
  1218.     MOVE.W    (SP)+,D1
  1219.     MOVE.W    (SP)+,D0
  1220.     RTE
  1221. MX:    MOVE.W    D0,-(SP)
  1222.     MOVE.B    $FFFFFC02.W,D0
  1223.     EXT    D0
  1224.     ADD.W    D0,MOUSEX
  1225.     BPL.S    .S1
  1226.     CLR.W    MOUSEX
  1227. .S1:    MOVE.L    #MY,$118.W
  1228.     MOVE.W    (SP)+,D0
  1229.     RTE
  1230. MY:    MOVE.W    D0,-(SP)
  1231.     MOVE.B    $FFFFFC02.W,D0
  1232.     EXT    D0
  1233.     ADD.W    D0,MOUSEY
  1234.     BPL.S    .S2
  1235.     CLR.W    MOUSEY
  1236. .S2:    MOVE.L    #CLAV,$118.W
  1237.     MOVE.W    (SP)+,D0
  1238.     RTE
  1239. ********************************************************************************
  1240. DISPLAY_MOUSE:    CMPI.W    #"OF",FMOUSE
  1241.     BNE.S    .CONT0
  1242.     RTS
  1243.  
  1244. .CONT0:    CMPI.W    #$1973,FMOUSE
  1245.     BEQ.S    .CONT2
  1246.  
  1247.     LEA    BACK_SPR,A0
  1248.     MOVE.L    EXMOUSE,A1
  1249.     MOVE.W    #15,D0
  1250. .BCL0:    REPT    4
  1251.     MOVE.L    (A0)+,(A1)+
  1252.     ENDR
  1253.     LEA    320-16(A1),A1
  1254.     DBRA.W    D0,.BCL0
  1255.  
  1256.     TST    FMOUSE
  1257.     BNE.S    .CONT1
  1258.     MOVE.W    #"OF",FMOUSE
  1259.     RTS
  1260. .CONT1:
  1261.  
  1262. .CONT2:    MOVE.W    MOUSEY,D0
  1263.     CMPI.W    #480-16,D0
  1264.     BMI.S    .S3
  1265.     MOVE.W    #480-16,D0
  1266.     MOVE.W    D0,MOUSEY
  1267. .S3:    MULU.W    #320,D0
  1268.     MOVE.W    MOUSEX,D1
  1269.     CMPI.W    #640-16,D1
  1270.     BMI.S    .S4
  1271.     MOVE.W    #640-16,D1
  1272.     MOVE.W    D1,MOUSEX
  1273. .S4:    AND.L    #$0000FFF0,D1
  1274.     LSR.L    #1,D1
  1275.     ADD.L    D1,D0
  1276.     MOVE.L    ECR,A1
  1277.     ADD.L    D0,A1
  1278.     MOVE.L    A1,EXMOUSE
  1279.     MOVE.W    MOUSEX,D0
  1280.     AND.L    #$000F,D0
  1281.     LEA    SPRITE,A0
  1282.     LSL.L    #7,D0
  1283.     ADD.L    D0,A0
  1284.     LEA    BACK_SPR,A2
  1285.     MOVE.L    EXMOUSE,A3
  1286.     MOVE.W    #15,D0
  1287. .BCL1:    REPT    4
  1288.     MOVE.L    (A3)+,(A2)+
  1289.     ENDR
  1290.     LEA    320-16(A3),A3
  1291.     DBRA.W    D0,.BCL1
  1292.  
  1293.     CMPI.W    #$1973,FMOUSE
  1294.     BNE.S    .CONT3
  1295.     MOVE.W    #"ON",FMOUSE
  1296.     RTS
  1297.  
  1298. .CONT3:    MOVE.W    #15,D0
  1299. .Y:    MOVE.W    (A0)+,D1
  1300.     AND.W    D1,(A1)+
  1301.     AND.W    D1,(A1)+
  1302.     AND.W    D1,(A1)+
  1303.     AND.W    D1,(A1)+
  1304.     MOVE.W    (A0)+,D1
  1305.     AND.W    D1,(A1)+
  1306.     AND.W    D1,(A1)+
  1307.     AND.W    D1,(A1)+
  1308.     AND.W    D1,(A1)+
  1309.     MOVE.W    (A0)+,D1
  1310.     OR.W    D1,-16(A1)
  1311.     MOVE.W    (A0)+,D1
  1312.     OR.W    D1,-8(A1)
  1313.     LEA    320-16(A1),A1
  1314.     DBRA.W    D0,.Y
  1315. .FIN1:    RTS
  1316. ********************************************************************************
  1317. MY_WINDOWS:    CLR.W    FMOUSE
  1318.     BSR    WVBL
  1319.     BSR    SET_DMA
  1320.     MOVE.L    (A0)+,D0
  1321.     CMP.L    ACTUAL,D0
  1322.     BEQ.S    .EXIT
  1323.     MOVE.L    D0,ACTUAL
  1324.     CLR.W    NB_BOUTONS_MW
  1325.     LEA    BOUTONS_MW,A6
  1326. .MY:    MOVE.B    (A0)+,D0
  1327.     CMPI.B    #"*",D0
  1328.     BNE.S    .BOX
  1329. .EXIT:    MOVE.W    #$1973,FMOUSE
  1330.     BRA.S    MY_GESTION
  1331. .BOX:    CMPI.B    #"B",D0
  1332.     BNE.S    .WIN
  1333.     MOVE.B    (A0)+,D7
  1334.     MOVE.B    (A0)+,D0
  1335.     MOVE.B    (A0)+,D1
  1336.     MOVE.B    (A0)+,D2
  1337.     MOVE.B    (A0)+,D3
  1338.     TST.B    D7
  1339.     BEQ.S    .MY
  1340.     BSR    RECTANGLE
  1341.     BRA.S    .MY
  1342. .WIN:    CMPI.B    #"W",D0
  1343.     BNE.S    .TXT
  1344.     ADDQ.W    #1,NB_BOUTONS_MW
  1345.     MOVE.B    (A0)+,D7
  1346.     MOVE.B    (A0)+,D0
  1347.     EXT    D0
  1348.     MOVE.B    (A0)+,D1
  1349.     EXT    D1
  1350.     MOVE.B    (A0)+,D2
  1351.     EXT    D2
  1352.     MOVE.B    (A0)+,D3
  1353.     EXT    D3
  1354.     MOVE.W    D0,(A6)+
  1355.     MOVE.W    D0,(A6)
  1356.     ADD.W    D2,(A6)
  1357.     SUBQ.W    #1,(A6)+
  1358.     MOVE.W    D1,(A6)+
  1359.     MOVE.W    D1,(A6)
  1360.     ADD.W    D3,(A6)
  1361.     SUBQ.W    #1,(A6)+
  1362.     MOVE.B    (A0)+,(A6)+
  1363.     CLR.B    (A6)+
  1364.     TST.B    D7
  1365.     BEQ.S    .MY
  1366.     BSR    RECTANGLE
  1367.     BRA.S    .MY
  1368. .TXT:    CMPI.B    #"T",D0
  1369.     BNE.S    .EXIT
  1370.     MOVE.B    (A0)+,D7
  1371.     MOVE.B    (A0)+,D0
  1372.     MOVE.B    (A0)+,D1
  1373.     BSR    TEXT
  1374.     BRA.S    .MY
  1375. ********************************************************************************
  1376. MY_GESTION:    BSR    WVBL
  1377.     TST.L    ACTUAL
  1378.     BEQ.S    .EXIT
  1379.     TST.B    BOUTON
  1380.     BNE.S    .TEST
  1381.     BRA.S    MY_GESTION
  1382. .EXIT:    MOVE.B    #127,D0
  1383.     RTS
  1384. .TEST:    MOVE.W    NB_BOUTONS_MW,D0
  1385.     BEQ.S    MY_GESTION
  1386.     LEA    BOUTONS_MW,A0
  1387.     SUBQ.W    #1,D0
  1388. .BCL0:    CLR.W    FCHK
  1389.     MOVE.W    MOUSEY,D1
  1390.     LSR.W    #4,D1
  1391.     CHK2.W    (A0),D1
  1392.     MOVE.W    MOUSEX,D2
  1393.     LSR.W    #4,D2
  1394.     CHK2.W    4(A0),D2
  1395.     TST    FCHK
  1396.     BNE.S    .CT
  1397.     MOVE.B    8(A0),D0
  1398.     RTS
  1399. .CT:    LEA    10(A0),A0
  1400.     DBRA.W    D0,.BCL0
  1401.     BRA.S    MY_GESTION
  1402. ********************************************************************************
  1403. CHK:    MOVE.W    #$FFFF,FCHK
  1404.     RTE
  1405. ********************************************************************************
  1406. RECTANGLE:    MOVEM.L    D0-A6,-(SP)
  1407.     AND.L    #$FF,D0
  1408.     AND.L    #$FF,D1
  1409.     AND.L    #$FF,D2
  1410.     AND.L    #$FF,D3
  1411.     AND.L    #$FF,D7
  1412.     MOVE.L    ECR,A0
  1413.     MULU.W    #16*320,D0
  1414.     ADD.L    D0,A0
  1415.     LSL.W    #3,D1
  1416.     ADD.L    D1,A0
  1417.     LSL.W    #4,D2
  1418.     SUBQ.W    #1,D2
  1419.     SUBQ.W    #1,D3
  1420. .Y:    MOVE.W    D3,D4
  1421.     MOVE.L    A0,A1
  1422. .X:    CLR.L    (A1)
  1423.     CLR.L    4(A1)
  1424. .P1:    BTST    #0,D7
  1425.     BEQ.S    .P2
  1426.     MOVE.W    #$FFFF,(A1)
  1427. .P2:    BTST    #1,D7
  1428.     BEQ.S    .P3
  1429.     MOVE.W    #$FFFF,2(A1)
  1430. .P3:    BTST    #2,D7
  1431.     BEQ.S    .P4
  1432.     MOVE.W    #$FFFF,4(A1)
  1433. .P4:    BTST    #3,D7
  1434.     BEQ.S    .P0
  1435.     MOVE.W    #$FFFF,6(A1)
  1436. .P0:    ADDQ.L    #8,A1
  1437.     DBRA.W    D4,.X
  1438.     LEA    320(A0),A0
  1439.     DBRA.W    D2,.Y
  1440.     MOVEM.L    (SP)+,D0-A6
  1441.     RTS
  1442. ********************************************************************************
  1443. TEXT:    MOVEM.L    D0-A6,-(SP)
  1444.     AND.L    #$FF,D0
  1445.     AND.L    #$FF,D1
  1446.     AND.L    #$FF,D7
  1447.     LEA    FONT,A1
  1448.     MOVE.L    ECR,A2
  1449.     MULU.W    #16*320,D0
  1450.     ADD.L    D0,A2
  1451.     LSL.W    #3,D1
  1452.     ADD.L    D1,A2
  1453.     LEA    1+(4*320)(A2),A2
  1454.     CLR.W    D1
  1455. .X:     MOVE.B    (A0)+,D1
  1456.     BEQ.S    .EXIT
  1457.     BSR.S    PCHAR
  1458.     ADDQ.L    #7,A2
  1459.     MOVE.B    (A0)+,D1
  1460.     BEQ.S    .EXIT
  1461.     BSR.S    PCHAR
  1462.     ADDQ.L    #1,A2
  1463.     BRA.S    .X
  1464. .EXIT:    MOVEM.L    (SP)+,D0-A6
  1465. .RETRY:    TST.B    (A0)+
  1466.     BNE.S    .RETRY
  1467.     RTS
  1468. ********************************************************************************
  1469. PCHAR:    CMPI.B    #32,D1
  1470.     BEQ.S    .EXIT
  1471.     LEA    (A1,D1.W*8),A3
  1472.     MOVE.L    A2,A4
  1473.     MOVE.W    #7,D3
  1474. .Y:    MOVE.B    (A3)+,D2
  1475.     NOT.B    D2
  1476.     AND.B    D2,(A4)
  1477.     AND.B    D2,2(A4)
  1478.     AND.B    D2,4(A4)
  1479.     AND.B    D2,6(A4)
  1480.     ROR.B    #1,D2
  1481.     AND.B    D2,320(A4)
  1482.     AND.B    D2,322(A4)
  1483.     AND.B    D2,324(A4)
  1484.     AND.B    D2,326(A4)
  1485.     ROL.B    #1,D2
  1486.     NOT.B    D2
  1487. .P1:    BTST    #0,D7
  1488.     BEQ.S    .P2
  1489.     OR.B    D2,(A4)
  1490. .P2:    BTST    #1,D7
  1491.     BEQ.S    .P3
  1492.     OR.B    D2,2(A4)
  1493. .P3:    BTST    #2,D7
  1494.     BEQ.S    .P4
  1495.     OR.B    D2,4(A4)
  1496. .P4:    BTST    #3,D7
  1497.     BEQ.S    .P0
  1498.     OR.B    D2,6(A4)
  1499. .P0:    LEA    320(A4),A4
  1500.     DBRA.W    D3,.Y
  1501. .EXIT:    RTS
  1502. ********************************************************************************
  1503. MK_MOUSE:    LEA    MOUSE,A0
  1504.     MOVE.L    ECR,A1
  1505.     MOVE.W    #15,D0
  1506. .BCL3:    MOVE.W    (A0)+,(A1)
  1507.     CLR.W    2(A1)
  1508.     CLR.L    4(A1)
  1509.     CLR.L    8(A1)
  1510.     CLR.L    12(A1)
  1511.     LEA    320(A1),A1
  1512.     DBRA.W    D0,.BCL3
  1513.     LEA    SPRITE,A1
  1514.     MOVE.W    #15,D2
  1515. .BCL0:    MOVE.L    ECR,A0
  1516.     MOVE.W    #15,D1
  1517. .BCL1:    MOVE.W    (A0),D0
  1518.     NOT.W    D0
  1519.     MOVE.W    D0,(A1)+
  1520.     MOVE.W    8(A0),D0
  1521.     NOT.W    D0
  1522.     MOVE.W    D0,(A1)+
  1523.     MOVE.W    (A0),(A1)+
  1524.     MOVE.W    8(A0),(A1)+
  1525.     LEA    320(A0),A0
  1526.     DBRA.W    D1,.BCL1
  1527.     MOVE.L    ECR,A0
  1528.     MOVE.W    #15,D1
  1529. .BCL2:    LSR.W    (A0)
  1530.     ROXR.W    8(A0)
  1531.     LEA    320(A0),A0
  1532.     DBRA.W    D1,.BCL2
  1533.     DBRA.W    D2,.BCL0
  1534.     RTS
  1535. ********************************************************************************
  1536. NEW_RESOL:    MOVE.B    $FFFF8006.W,D0
  1537.     AND.W    #%11000000,D0
  1538.     BEQ    .ERROR
  1539.     STOP    #$2300
  1540.     STOP    #$2300
  1541.     CMPI.W    #128,D0
  1542.     BEQ    .VGA
  1543. .RVB:    include    rvg.s
  1544.     RTS
  1545. .VGA:    include    vga.s
  1546.     RTS
  1547. .ERROR:    ILLEGAL
  1548. ********************************************************************************
  1549. BOURRE:    MOVE.B    $FFFFFC00.W,D1
  1550.     BTST    #1,D1
  1551.     BEQ.S    BOURRE
  1552.     MOVE.B    D0,$FFFFFC02.w
  1553.          RTS
  1554. ********************************************************************************
  1555. SET_DMA:    CLR.W    $FFFF8900.W    * ON COUPE TOUT
  1556.  
  1557.     MOVE.B    #%00000000,$FFFF8920.W    * DAC
  1558.     MOVE.B    #%01000000,$FFFF8921.W    * SOUND MODE CONTROL (16BITS/STEREO)
  1559.     MOVE.B    #15,$FFFF9834.W        * SURECHANTILLONAGE * 256
  1560.     MOVE.B    DMA_FREQ,$FFFF8935.W    * FREQUENCY DEVIDER INTERNAL
  1561.  
  1562.     CLR.W    D0
  1563.     MOVE.B    DMA_OUTPUT_L,D0
  1564.     LSL.W    #4,D0
  1565.     OR.B    DMA_OUTPUT_R,D0
  1566.     LSL.W    #4,D0
  1567.     MOVE.W    D0,$FFFF893A.W        * AMPLIFICATION
  1568.  
  1569.     CLR.W    D0
  1570.     MOVE.B    DMA_INPUT_L,D0
  1571.     LSL.W    #4,D0
  1572.     OR.B    DMA_INPUT_R,D0
  1573.     MOVE.B    D0,$FFFF8939.W        * ATTENUATION
  1574.  
  1575.     MOVE.W    #$0001,$FFFF8930.W    * INPUT
  1576.     MOVE.W    #$0007,$FFFF8932.W    * OUTPUT
  1577.  
  1578.     MOVE.B    #%00000000,$FFFF8936.W    * ADC
  1579.     MOVE.B    #%00000001,$FFFF8937.W    * INPUT SOURCE
  1580.     MOVE.B    #%00000000,$FFFF8938.W    * MICROPHONE
  1581.     RTS
  1582. ********************************************************************************
  1583. SET_VOL:    CLR.W    D0
  1584.     MOVE.B    DMA_INPUT_L,D0
  1585.     LSL.W    #4,D0
  1586.     OR.B    DMA_INPUT_R,D0
  1587.     MOVE.B    D0,$FFFF8939.W        * ATTENUATION
  1588.     RTS
  1589. ********************************************************************************
  1590. BEGIN:
  1591.     *LEA    INTRO_MW,A0
  1592.     *BSR    MY_WINDOWS
  1593.     *TST    D0
  1594.     *BEQ.S    GENERAL
  1595.     *LEA    INFO_MW,A0
  1596.     *BSR    MY_WINDOWS
  1597. * ENLEVER LES * AU DESSUS POUR UNE VERSION NORMALE
  1598. ********************************************************************************
  1599. GENERAL:    CLR.L    ACTUAL
  1600.     BSR    CCOURBE
  1601.     BSR    CONVERT5
  1602.     LEA    GENERAL_MW,A0
  1603.     BSR    MY_WINDOWS
  1604.     CMPI.B    #1,D0
  1605.     BEQ    FREQUENCE
  1606.     CMPI.B    #2,D0
  1607.     BEQ    OUTPUT
  1608.     CMPI.B    #3,D0
  1609.     BEQ    INPUT
  1610.     CMPI.B    #4,D0
  1611.     BEQ    RECORD
  1612.     CMPI.B    #5,D0
  1613.     BEQ    PLAY
  1614.     CMPI.B    #6,D0
  1615.     BEQ    LOOP
  1616.     CMPI.B    #7,D0
  1617.     BEQ    OSCILLOS
  1618.     CMPI.B    #8,D0
  1619.     BEQ    ZOOM
  1620.     CMPI.B    #9,D0
  1621.     BEQ    RAZ
  1622.     CMPI.B    #10,D0
  1623.     BEQ    POP_ZOOM
  1624.     CMPI.B    #11,D0
  1625.     BEQ    SET_BLSTART
  1626.     CMPI.B    #12,D0
  1627.     BEQ    SET_BLEND
  1628.     CMPI.B    #13,D0
  1629.     BEQ    BLPLAY
  1630.     CMPI.B    #14,D0
  1631.     BEQ    BLRECORD
  1632.     CMPI.B    #15,D0
  1633.     BEQ    CLEAR_ALL
  1634.     CMPI.B    #16,D0
  1635.     BEQ    SPATH
  1636.     CMPI.B    #17,D0
  1637.     BEQ    BLOCK
  1638.     CMPI.B    #18,D0
  1639.     BEQ    VISU_BLOCK
  1640.     CMPI.B    #19,D0
  1641.     BEQ    SSAVE
  1642.     CMPI.B    #20,D0
  1643.     BEQ    SLOAD
  1644.     CMPI.B    #21,D0
  1645.     BEQ    SEXPORT
  1646.     CMPI.B    #22,D0
  1647.     BEQ    SDELETE
  1648.     TST.B    D0
  1649.     BNE    GENERAL
  1650.     CLR.W    RETURN
  1651.     RTS
  1652. ********************************************************************************
  1653. FREQUENCE:    LEA    FREQUENCE_MW,A0
  1654.     BSR    MY_WINDOWS
  1655.     TST.B    D0
  1656.     BMI    GENERAL
  1657.     CMPI.B    #127,D0
  1658.     BEQ.S    FREQUENCE
  1659.     MOVE.B    D0,DMA_FREQ
  1660.     BRA.S    FREQUENCE
  1661. ********************************************************************************
  1662. OUTPUT:    BSR    CONVERT1
  1663.     LEA    OUTPUT1_MW,A0
  1664.     BSR    MY_WINDOWS
  1665.     BRA.S    .TEST
  1666. .OUTPUT2:    TST    BOUTON
  1667.     BNE.S    .OUTPUT2
  1668.     CLR.L    ACTUAL
  1669.     BSR    CONVERT2
  1670.     LEA    OUTPUT2_MW,A0
  1671.     BSR    MY_WINDOWS
  1672. .TEST:    CMPI.B    #1,D0
  1673.     BNE.S    .PLUS_GAUCHE
  1674.     SUBQ.B    #1,DMA_OUTPUT_L
  1675.     BPL.S    .OUTPUT2
  1676.     CLR.B    DMA_OUTPUT_L
  1677.     BRA.S    .OUTPUT2
  1678. .PLUS_GAUCHE:    CMPI.B    #2,D0
  1679.     BNE.S    .MOINS_DROITE
  1680.     ADDQ.B    #1,DMA_OUTPUT_L
  1681.     CMPI.B    #16,DMA_OUTPUT_L
  1682.     BMI.S    .OUTPUT2
  1683.     MOVE.B    #15,DMA_OUTPUT_L
  1684.     BRA.S    .OUTPUT2
  1685. .MOINS_DROITE:    CMPI.B    #3,D0
  1686.     BNE.S    .PLUS_DROITE
  1687.     SUBQ.B    #1,DMA_OUTPUT_R
  1688.     BPL.S    .OUTPUT2
  1689.     CLR.B    DMA_OUTPUT_R
  1690.     BRA.S    .OUTPUT2
  1691. .PLUS_DROITE:    CMPI.B    #4,D0
  1692.     BNE.S    .FINAL
  1693.     ADDQ.B    #1,DMA_OUTPUT_R
  1694.     CMPI.B    #16,DMA_OUTPUT_R
  1695.     BMI.S    .OUTPUT2
  1696.     MOVE.B    #15,DMA_OUTPUT_R
  1697.     BRA    .OUTPUT2
  1698. .FINAL:    TST.B    D0
  1699.     BMI    GENERAL
  1700.     BRA    .OUTPUT2
  1701.  
  1702. ********************************************************************************
  1703. INPUT:    BSR    CONVERT3
  1704.     LEA    INPUT1_MW,A0
  1705.     BSR    MY_WINDOWS
  1706.     BRA.S    .TEST
  1707. .INPUT2:    TST    BOUTON
  1708.     BNE.S    .INPUT2
  1709.     CLR.L    ACTUAL
  1710.     BSR    CONVERT4
  1711.     LEA    INPUT2_MW,A0
  1712.     BSR    MY_WINDOWS
  1713. .TEST:    TST    D0
  1714.     BNE.S    .MOINS_GAUCHE
  1715.     NOT.B    DMA_AUTO
  1716.     BRA.S    .INPUT2
  1717. .MOINS_GAUCHE:    CMPI.B    #1,D0
  1718.     BNE.S    .PLUS_GAUCHE
  1719.     SUBQ.B    #1,DMA_INPUT_L
  1720.     BPL.S    .INPUT2
  1721.     CLR.B    DMA_INPUT_L
  1722.     BRA.S    .INPUT2
  1723. .PLUS_GAUCHE:    CMPI.B    #2,D0
  1724.     BNE.S    .MOINS_DROITE
  1725.     ADDQ.B    #1,DMA_INPUT_L
  1726.     CMPI.B    #16,DMA_INPUT_L
  1727.     BMI.S    .INPUT2
  1728.     MOVE.B    #15,DMA_INPUT_L
  1729.     BRA.S    .INPUT2
  1730. .MOINS_DROITE:    CMPI.B    #3,D0
  1731.     BNE.S    .PLUS_DROITE
  1732.     SUBQ.B    #1,DMA_INPUT_R
  1733.     BPL.S    .INPUT2
  1734.     CLR.B    DMA_INPUT_R
  1735.     BRA.S    .INPUT2
  1736. .PLUS_DROITE:    CMPI.B    #4,D0
  1737.     BNE.S    .FINAL
  1738.     ADDQ.B    #1,DMA_INPUT_R
  1739.     CMPI.B    #16,DMA_INPUT_R
  1740.     BMI    .INPUT2
  1741.     MOVE.B    #15,DMA_INPUT_R
  1742.     BRA    .INPUT2
  1743. .FINAL:    TST.B    D0
  1744.     BMI    GENERAL
  1745.     BRA    .INPUT2
  1746. ********************************************************************************
  1747. CONVERT1:    LEA    CVT1+10,A0
  1748.     MOVE.B    DMA_OUTPUT_L,D0
  1749.     BSR    CONVERTB
  1750.     LEA    CVT1+26,A0
  1751.     MOVE.B    DMA_OUTPUT_R,D0
  1752.     BSR    CONVERTB
  1753.     RTS
  1754. CONVERT2:    LEA    CVT2+10,A0
  1755.     MOVE.B    DMA_OUTPUT_L,D0
  1756.     BSR    CONVERTB
  1757.     LEA    CVT2+26,A0
  1758.     MOVE.B    DMA_OUTPUT_R,D0
  1759.     BSR    CONVERTB
  1760.     RTS
  1761. ********************************************************************************
  1762. CONVERT3:    MOVE.B    #5,FAUTO1+1
  1763.     TST.B    DMA_AUTO
  1764.     BEQ.S    .CONT
  1765.     MOVE.B    #9,FAUTO1+1
  1766. .CONT:    LEA    CVT3+10,A0
  1767.     MOVE.B    DMA_INPUT_L,D0
  1768.     BSR    CONVERTB
  1769.     LEA    CVT3+26,A0
  1770.     MOVE.B    DMA_INPUT_R,D0
  1771.     BSR    CONVERTB
  1772.     RTS
  1773.  
  1774. CONVERT4:    MOVE.B    #5,FAUTO2+1
  1775.     TST.B    DMA_AUTO
  1776.     BEQ.S    .CONT
  1777.     MOVE.B    #9,FAUTO2+1
  1778. .CONT:    LEA    CVT4+10,A0
  1779.     MOVE.B    DMA_INPUT_L,D0
  1780.     BSR    CONVERTB
  1781.     LEA    CVT4+26,A0
  1782.     MOVE.B    DMA_INPUT_R,D0
  1783.     BSR.S    CONVERTB
  1784.     RTS
  1785. ********************************************************************************
  1786. CONVERT5:    LEA    CVT5+15,A0
  1787.     MOVE.L    START,D0
  1788.     BSR    CONVERTL
  1789.     LEA    CVT5+35,A0
  1790.     MOVE.L    END,D0
  1791.     SUB.L    START,D0
  1792.     BSR.S    CONVERTL
  1793.     LEA    CVT5+55,A0
  1794.     MOVE.L    END,D0
  1795.     BSR.S    CONVERTL
  1796.     MOVE.B    #5,LLOOP+1
  1797.     TST.B    FLOOP
  1798.     BEQ.S    .CONT
  1799.     MOVE.B    #9,LLOOP+1
  1800. .CONT:    LEA    CVT6+15,A0
  1801.     MOVE.L    BLSTART,D0
  1802.     BSR.S    CONVERTL
  1803.     LEA    CVT6+35,A0
  1804.     MOVE.L    BLEND,D0
  1805.     SUB.L    BLSTART,D0
  1806.     BSR.S    CONVERTL
  1807.     LEA    CVT6+56,A0
  1808.     MOVE.L    BLEND,D0
  1809.     BSR.S    CONVERTL
  1810.     RTS
  1811. ********************************************************************************
  1812. CONVERTB:    LEA    CONVERT,A1
  1813.     CLR.L    D1
  1814.     MOVE.B    D0,D1
  1815.     DIVU.W    #10,D1
  1816.     MOVE.B    (A1,D1.W),(A0)+
  1817.     SWAP    D1
  1818.     MOVE.B    (A1,D1.W),(A0)
  1819.     RTS
  1820. ********************************************************************************
  1821. CONVERTL:    LEA    CONVERT,A1
  1822.     MOVE.W    #7,D7
  1823. .BCL0:    CLR.L    D1
  1824.     DIVU.L    #10,D1:D0
  1825.     MOVE.B    (A1,D1.W),-(A0)
  1826.     DBRA.W    D7,.BCL0
  1827.     RTS
  1828. ********************************************************************************
  1829. EFFACE2:    CLR.W    FMOUSE
  1830.     BSR    WVBL
  1831.     CLR.W    D0
  1832.     MOVE.W    D0,D1
  1833.     MOVE.W    D1,D7
  1834.     MOVE.W    #30,D2
  1835.     MOVE.W    #40,D3
  1836.     BSR    RECTANGLE
  1837.     MOVE.W    #$1973,FMOUSE
  1838.     BSR    WVBL
  1839.     RTS
  1840. ********************************************************************************
  1841. CCOURBE:    CLR.W    FMOUSE
  1842.     BSR    WVBL
  1843.     CLR.W    D0
  1844.     MOVE.W    D0,D1
  1845.     MOVE.W    D1,D7
  1846.     MOVE.W    #30,D2
  1847.     MOVE.W    #40,D3
  1848.     BSR    RECTANGLE
  1849.     BSR.S    COURBE
  1850.     MOVE.W    #$1973,FMOUSE
  1851.     BSR    WVBL
  1852.     RTS
  1853. ********************************************************************************
  1854. COURBE:    MOVE.L    MEMORY_START,A0
  1855.     MOVE.L    START,D0
  1856.     MOVE.L    END,D1
  1857.     ADD.L    D0,A0
  1858.     SUB.L    D0,D1
  1859.     MOVE.L    ECR,A6
  1860.     LEA    14(A6),A6
  1861.     CLR.W    D3
  1862.     MOVE.W    #37,D7
  1863. .BCL0:    MOVE.W    #255,D6
  1864. .EFF:    CLR.L    (A6)
  1865.     CLR.L    -4(A6)
  1866.     LEA    320(A6),A6
  1867.     DBRA.W    D6,.EFF
  1868.     SUB.L    #256*320,A6
  1869.     MOVE.W    #15,D6
  1870.     MOVE.W    #$8000,D5
  1871. .BCL1:    MOVE.L    D1,D2
  1872.     MULU.L    D3,D2
  1873.     DIVU.L    #608,D2
  1874.     AND.L    #$FFFFFFFC,D2
  1875.     MOVE.L    A6,-(SP)
  1876.     CLR.W    FCHK
  1877.     CLR.L    D4
  1878.     MOVE.L    D2,D4
  1879.     ADD.L    START,D4
  1880.     LEA    BLSTART,A5
  1881.     CHK2.L     (A5),D4
  1882.     CLR.W    D4
  1883.     MOVE.B    (A0,D2.L),D4
  1884.     ADD.B    #128,D4
  1885.     CLR.W    D0
  1886.     MOVE.B    2(A0,D2.L),D0
  1887.     ADD.B    #128,D0
  1888.     ADD.W    D4,D0
  1889.     LSR.W    #1,D0
  1890.  
  1891.     TST.W    FCHK
  1892.     BEQ.S    .CT1
  1893.     SUBQ.L    #6,A6
  1894.  
  1895. .CT1:    BTST    #7,D0
  1896.     BEQ.S    .CONT0
  1897.     SUB.W    #128,D0
  1898.     MOVE.L    #127*320,D4
  1899. .BCL2:    OR.W    D5,(A6,D4.L)
  1900.     SUB.L    #320,D4
  1901.     DBRA.W    D0,.BCL2
  1902.     BRA.S    .CONT1
  1903. .CONT0:    MOVE.W    #128,D2
  1904.     SUB.B    D0,D2
  1905.     MOVE.L    #127*320,D4
  1906. .BCL3:    OR.W    D5,(A6,D4.L)
  1907.     ADD.L    #320,D4
  1908.     DBRA.W    D2,.BCL3
  1909. .CONT1:    LSR.W    #1,D5
  1910.     ADDQ.W    #1,D3
  1911.     MOVE.L    (SP)+,A6
  1912.     DBRA.W    D6,.BCL1
  1913.     ADDQ.L    #8,A6
  1914.     DBRA.W    D7,.BCL0
  1915.     RTS
  1916. ********************************************************************************
  1917. BLRECORD:    BSR    BLDMA_ADRESSE
  1918.     MOVE.B    #%00000001,$FFFF8937.W    * INPUT SOURCE
  1919.     TST    FLOOP
  1920.     BEQ.S    .NO_LOOP
  1921. .LOOP:    MOVE.B    #%10110000,$FFFF8901.W
  1922.     BSR    AFFICHE_COUNTER
  1923.     BRA    GENERAL
  1924. .NO_LOOP:    MOVE.B    #%10010000,$FFFF8901.W
  1925.     BSR    AFFICHE_COUNTER
  1926.     BRA    GENERAL
  1927.  
  1928. RECORD:    BSR    DMA_ADRESSE
  1929.     MOVE.B    #%00000001,$FFFF8937.W    * INPUT SOURCE
  1930.     TST    FLOOP
  1931.     BEQ.S    .NO_LOOP
  1932. .LOOP:    MOVE.B    #%10110000,$FFFF8901.W
  1933.     BSR    AFFICHE_COUNTER
  1934.     BRA    GENERAL
  1935. .NO_LOOP:    MOVE.B    #%10010000,$FFFF8901.W
  1936.     BSR    AFFICHE_COUNTER
  1937.     BRA    GENERAL
  1938. ********************************************************************************
  1939. BLPLAY:    BSR.S    BLDMA_ADRESSE
  1940.     MOVE.B    #%00000010,$FFFF8937.W    * INPUT SOURCE
  1941.     TST    FLOOP
  1942.     BEQ.S    .NO_LOOP
  1943. .LOOP:    MOVE.B    #$03,$FFFF8901.W
  1944.     BSR    WT
  1945.     BRA    GENERAL
  1946. .NO_LOOP:    MOVE.B    #$01,$FFFF8901.W
  1947.     BSR    WT
  1948.     BRA    GENERAL
  1949.  
  1950. PLAY:    BSR.S    DMA_ADRESSE
  1951.     MOVE.B    #%00000010,$FFFF8937.W    * INPUT SOURCE
  1952.     TST    FLOOP
  1953.     BEQ.S    .NO_LOOP
  1954. .LOOP:    MOVE.B    #$03,$FFFF8901.W
  1955.     BSR    WT
  1956.     BRA    GENERAL
  1957. .NO_LOOP:    MOVE.B    #$01,$FFFF8901.W
  1958.     BSR    WT
  1959.     BRA    GENERAL
  1960. ********************************************************************************
  1961. DMA_ADRESSE:    BSET    #7,$FFFF8901.W
  1962.     BSR.S    DMA_ADR
  1963.     BCLR    #7,$FFFF8901.W
  1964.     BSR.S    DMA_ADR
  1965.     RTS
  1966.  
  1967. BLDMA_ADRESSE:    BSET    #7,$FFFF8901.W
  1968.     BSR.S    BLDMA_ADR
  1969.     BCLR    #7,$FFFF8901.W
  1970.     BSR.S    BLDMA_ADR
  1971.     RTS
  1972.  
  1973. DMA_ADR:    LEA    ADR,A1
  1974.     MOVE.L    MEMORY_START,A0
  1975.     ADD.L    START,A0
  1976.     MOVE.L    A0,(A1)
  1977.     MOVE.B    1(A1),$FFFF8903.W
  1978.     MOVE.B    2(A1),$FFFF8905.W
  1979.     MOVE.B    3(A1),$FFFF8907.W
  1980.     MOVE.L    MEMORY_START,A0
  1981.     ADD.L    END,A0
  1982.     MOVE.L    A0,(A1)
  1983.     MOVE.B    1(A1),$FFFF890F.W
  1984.     MOVE.B    2(A1),$FFFF8911.W
  1985.     MOVE.B    3(A1),$FFFF8913.W
  1986.     RTS
  1987.  
  1988. BLDMA_ADR:    LEA    ADR,A1
  1989.     MOVE.L    MEMORY_START,A0
  1990.     ADD.L    BLSTART,A0
  1991.     MOVE.L    A0,(A1)
  1992.     MOVE.B    1(A1),$FFFF8903.W
  1993.     MOVE.B    2(A1),$FFFF8905.W
  1994.     MOVE.B    3(A1),$FFFF8907.W
  1995.     MOVE.L    MEMORY_START,A0
  1996.     ADD.L    BLEND,A0
  1997.     MOVE.L    A0,(A1)
  1998.     MOVE.B    1(A1),$FFFF890F.W
  1999.     MOVE.B    2(A1),$FFFF8911.W
  2000.     MOVE.B    3(A1),$FFFF8913.W
  2001.     RTS
  2002. ********************************************************************************
  2003. AFFICHE_COUNTER:
  2004.     CLR.W    FMOUSE
  2005.     BSR    WVBL
  2006. .RETRY:    BSR    COURBE
  2007.     MOVE.B    $FFFF8901.W,D0
  2008.     AND.B    #$7F,D0
  2009.     BEQ.S    .EXIT
  2010.     CMPI.B    #1,BOUTON
  2011.     BNE.S    .RETRY
  2012.     CLR.W    $FFFF8900.W
  2013. .EXIT:    MOVE.W    #$1973,FMOUSE
  2014.     BSR    WVBL
  2015. .RETRY2:    TST.B    BOUTON
  2016.     BNE.S    .RETRY2
  2017.     RTS
  2018. ********************************************************************************
  2019. WT:
  2020.     CLR.W    FMOUSE
  2021.     BSR    WVBL
  2022. .RETRY:    MOVE.B    $FFFF8901.W,D0
  2023.     AND.B    #$7F,D0
  2024.     BEQ.S    .EXIT
  2025.     CMPI.B    #1,BOUTON
  2026.     BNE.S    .RETRY
  2027.     CLR.W    $FFFF8900.W
  2028. .EXIT:    MOVE.W    #$1973,FMOUSE
  2029.     BSR    WVBL
  2030. .RETRY2:    TST.B    BOUTON
  2031.     BNE.S    .RETRY2
  2032.     RTS
  2033. ********************************************************************************
  2034. LOOP:    NOT.W    FLOOP
  2035.     BRA    GENERAL
  2036. ********************************************************************************
  2037. OSCILLOS:    BSR    EFFACE2
  2038.     CLR.W    FMOUSE
  2039.     BSR    WVBL
  2040.     MOVE.W    #$3011,D0
  2041.     MOVEC    D0,CACR
  2042.     LEA    ADR,A1
  2043.     BSET    #7,$FFFF8901.W
  2044.     LEA    O_GAUCHE,A0
  2045.     MOVE.L    A0,(A1)
  2046.     MOVE.B    1(A1),$FFFF8903.W
  2047.     MOVE.B    2(A1),$FFFF8905.W
  2048.     MOVE.B    3(A1),$FFFF8907.W
  2049.     LEA    (O_GAUCHE+(640*4)),A0
  2050.     MOVE.L    A0,(A1)
  2051.     MOVE.B    1(A1),$FFFF890F.W
  2052.     MOVE.B    2(A1),$FFFF8911.W
  2053.     MOVE.B    3(A1),$FFFF8913.W
  2054.     MOVE.W    #$0001,$FFFF8930.W    * INPUT
  2055.     MOVE.W    #$6007,$FFFF8932.W    * OUTPUT
  2056.     MOVE.B    #%00000001,$FFFF8937.W    * INPUT SOURCE
  2057.     MOVE.B    #%10110000,$FFFF8901.W
  2058.     MOVE.L    NEW_PALETTE+4,-(SP)
  2059.     MOVE.L    NEW_PALETTE+8,-(SP)
  2060.     MOVE.L    NEW_PALETTE+12,-(SP)
  2061.     MOVE.L    #$FFFF00FF,NEW_PALETTE+12
  2062. .RETRY:    MOVE.L    #$00000000,NEW_PALETTE+4
  2063.     MOVE.L    #$FFFF00FF,NEW_PALETTE+8
  2064.     MOVE.L    ECR,A6
  2065.     LEA    EFF_BUFFER1,A0
  2066.     BSR.S    AFF_C
  2067. .WT1:    CMPI.B    #2,BOUTON
  2068.     BEQ.S    .WT1
  2069.     MOVE.L    #$FFFF00FF,NEW_PALETTE+4
  2070.     MOVE.L    #$00000000,NEW_PALETTE+8
  2071.     MOVE.L    ECR,A6
  2072.     ADDQ.L    #2,A6
  2073.     LEA    EFF_BUFFER2,A0
  2074.     BSR.S    AFF_C
  2075. .WT2:    CMPI.B    #2,BOUTON
  2076.     BEQ.S    .WT2
  2077.     CMPI.B    #1,BOUTON
  2078.     BNE.S    .RETRY
  2079.     MOVE.L    (SP)+,NEW_PALETTE+12
  2080.     MOVE.L    (SP)+,NEW_PALETTE+8
  2081.     MOVE.L    (SP)+,NEW_PALETTE+4
  2082.     CLR.W    $FFFF8900.W
  2083.     MOVE.W    #$3111,D0
  2084.     MOVEC    D0,CACR
  2085.     BRA    GENERAL
  2086.  
  2087. AFF_C:    MOVE.W    #39,D7
  2088.     MOVE.L    A0,A1
  2089.     LEA    MUL32,A5
  2090.     LEA    O_GAUCHE,A4
  2091. .BCL0:    MOVE.W    #7,D6
  2092. .BCL1:    REPT    2
  2093.     MOVE.L    (A1)+,D0
  2094.     CLR.W    (A6,D0.L)
  2095.     MOVE.L    (A1)+,D0
  2096.     CLR.W    (A6,D0.L)
  2097.     ENDR
  2098.     DBRA.W    D6,.BCL1
  2099.     MOVE.W    #$8000,D5
  2100.     MOVE.W    #3,D6
  2101. .BCL2:    REPT    4
  2102.     TST.L    (A4)
  2103.     BEQ.S    *-2
  2104.     CLR.L    D0
  2105.     CLR.L    D1
  2106.     MOVE.W    (A4),D0
  2107.     MOVE.W    2(A4),D1
  2108.     CLR.L    (A4)+
  2109.     ADD.W    #32768,D0
  2110.     ADD.W    #32768,D1
  2111.     DIVU.W    #137,D0
  2112.     DIVU.W    #137,D1
  2113.     MOVE.L    (A5,D0.W*4),D0
  2114.     MOVE.L    (A5,D1.W*4),D1
  2115.     MOVE.L    D0,(A0)+
  2116.     MOVE.L    D1,(A0)+
  2117.     OR.W    D5,(A6,D0.L)
  2118.     OR.W    D5,(A6,D1.L)
  2119.     LSR.W    #1,D5
  2120.     ENDR
  2121.     DBRA.W    D6,.BCL2
  2122.     ADDQ.L    #8,A6
  2123.     DBRA.W    D7,.BCL0
  2124.     RTS
  2125. ********************************************************************************
  2126. RAZ:    BSR    PUSH_ZOOM
  2127.     CLR.L    START
  2128.     MOVE.L    MEMORY_LENGHT,END
  2129.     BRA    GENERAL
  2130. ********************************************************************************
  2131. ZOOM:    CMPI.B    #2,BOUTON
  2132.     BEQ.S    SET_START
  2133.     CMPI.B    #1,BOUTON
  2134.     BEQ.S    SET_END
  2135.     BRA    GENERAL
  2136. SET_START:    BSR.S    GET_POS
  2137.     BSR    PUSH_ZOOM
  2138.     MOVE.L    D0,START
  2139.     BRA    GENERAL
  2140. SET_END:    BSR.S    GET_POS
  2141.     BSR    PUSH_ZOOM
  2142.     MOVE.L    D0,END
  2143.     BRA    GENERAL
  2144. GET_POS:    CLR.L    -(SP)
  2145. .RETRY    BSR    WVBL
  2146.     MOVE.W    #3,D7
  2147.     MOVE.W    #14,D0
  2148.     MOVE.W    #34,D1
  2149.     MOVE.W    #01,D2
  2150.     MOVE.W    #05,D3
  2151.     BSR    RECTANGLE
  2152.     MOVE.L    START,D0
  2153.     MOVE.L    END,D1
  2154.     SUB.L    D0,D1
  2155.     CLR.L    D3
  2156.     MOVE.W    MOUSEX,D3
  2157.     SUB.W    #16,D3
  2158.     BPL.S    .CONT1
  2159.     CLR.W    D3
  2160. .CONT1:    CMPI.W    #639-32,D3
  2161.     BMI.S    .CONT2
  2162.     MOVE.W    #640-32,D3
  2163. .CONT2:    MULU.L    D3,D1
  2164.     DIVU.L    #608,D1
  2165.     AND.L    #$FFFFFFFC,D1
  2166.     MOVE.L    START,D0
  2167.     ADD.L    D1,D0
  2168.     MOVE.L    D0,(SP)
  2169.     LEA    COUNTER_TXT+8,A0
  2170.     BSR    CONVERTL
  2171.     MOVE.W    #1,D7
  2172.     MOVE.W    #14,D0
  2173.     MOVE.W    #34,D1
  2174.     LEA    COUNTER_TXT,A0
  2175.     BSR    TEXT
  2176.     TST.B    BOUTON
  2177.     BNE    .RETRY
  2178.     MOVE.L    (SP)+,D0
  2179.     RTS
  2180. ********************************************************************************
  2181. PUSH_ZOOM:    LEA    (HZOOM+(4*2*30)),A6
  2182.     MOVE.W    #30,D7
  2183. .BCL:    MOVE.L    (A6),8(A6)
  2184.     MOVE.L    4(A6),12(A6)
  2185.     SUBQ.L    #8,A6
  2186.     DBRA.W    D7,.BCL
  2187.     MOVE.L    START,8(A6)
  2188.     MOVE.L    END,12(A6)
  2189.     RTS
  2190. ********************************************************************************
  2191. POP_ZOOM:    LEA    HZOOM,A6
  2192.     MOVE.L    (A6),START
  2193.     MOVE.L    4(A6),END
  2194.     MOVE.W    #30,D7
  2195. .BCL:    MOVE.L    8(A6),(A6)
  2196.     MOVE.L    12(A6),4(A6)
  2197.     ADDQ.L    #8,A6
  2198.     DBRA.W    D7,.BCL
  2199.     BRA    GENERAL
  2200. ********************************************************************************
  2201. SET_BLSTART:    MOVE.L    BLEND,D0
  2202.     CMP.L    START,D0
  2203.     BMI.S    .ABORT
  2204.     MOVE.L    START,BLSTART
  2205. .ABORT:    BRA    GENERAL
  2206. ********************************************************************************
  2207. SET_BLEND:    MOVE.L    BLSTART,D0
  2208.     CMP.L    END,D0
  2209.     BPL.S    .ABORT
  2210.     MOVE.L    END,BLEND
  2211. .ABORT:    BRA    GENERAL
  2212. ********************************************************************************
  2213. CLEAR_ALL:    MOVE.L    MEMORY_START,A0
  2214.     MOVE.L    MEMORY_LENGHT,D0
  2215.     LSR.L    #2,D0
  2216. .CLEAR:    CLR.L    (A0)+
  2217.     SUBQ.L    #1,D0
  2218.     BNE.S    .CLEAR
  2219.     MOVE.L    MEMORY_LENGHT,END
  2220.     MOVE.L    MEMORY_LENGHT,BLEND
  2221.     CLR.L    START
  2222.     CLR.L    BLSTART
  2223.     BRA    GENERAL
  2224. ********************************************************************************
  2225. SPATH:    MOVE.W    #1,RETURN
  2226.     RTS
  2227. ********************************************************************************
  2228. BLOCK:
  2229.     CLR.L    ACTUAL
  2230.     LEA    BLOCK_MW,A0
  2231.     BSR    MY_WINDOWS
  2232.     CMPI.B    #1,D0
  2233.     BEQ.S    VOLUME
  2234.     CMPI.B    #3,D0
  2235.     BEQ    INVERSE
  2236.     CMPI.B    #4,D0
  2237.     BEQ    COUPER
  2238.     CMPI.B    #5,D0
  2239.     BEQ    DETRUIRE
  2240.     BRA    GENERAL
  2241. ********************************************************************************
  2242. VOLUME:
  2243. * PHASE 1: ON MET LA VALEUR MAXIMALE DANS D7
  2244.     CLR.L    D7
  2245.     MOVE.L    MEMORY_START,A0
  2246.     ADD.L    BLSTART,A0
  2247.     MOVE.L    BLEND,D0
  2248.     SUB.L    BLSTART,D0
  2249. .BCL1:    MOVE.W    (A0)+,D1
  2250.     BPL.S    .CT1
  2251.     NEG.W    D1
  2252. .CT1:    CMP.W    D7,D1
  2253.     BMI.S    .CT2
  2254.     MOVE.W    D1,D7
  2255. .CT2:    SUBQ.L    #2,D0
  2256.     BNE.S    .BCL1
  2257.     CMPI.W    #32768,D7
  2258.     BNE.S    .CT3
  2259.     MOVE.W    #32767,D7
  2260. * PHASE 2: ON BOOST
  2261. .CT3:    MOVE.L    MEMORY_START,A0
  2262.     ADD.L    BLSTART,A0
  2263.     MOVE.L    BLEND,D0
  2264.     SUB.L    BLSTART,D0
  2265. .BCL2:    CLR.L    D1
  2266.     MOVE.W    (A0),D1
  2267.     BPL.S    .CT4
  2268.     NEG.W    D1
  2269.     MULS.L    #32767,D1
  2270.     DIVS.W    D7,D1
  2271.     NEG.W    D1
  2272.     MOVE.W    D1,(A0)+
  2273.     SUBQ.L    #2,D0
  2274.     BNE.S    .BCL2
  2275.     BRA    GENERAL
  2276. .CT4:    MULS.L    #32767,D1
  2277.     DIVS.W    D7,D1
  2278.     MOVE.W    D1,(A0)+
  2279.     SUBQ.L    #2,D0
  2280.     BNE.S    .BCL2
  2281.     BRA    GENERAL
  2282. ********************************************************************************
  2283. INVERSE:    MOVE.L    MEMORY_START,A0
  2284.     ADD.L    BLSTART,A0
  2285.     MOVE.L    MEMORY_START,A1
  2286.     ADD.L    BLEND,A1
  2287.     MOVE.L    BLEND,D0
  2288.     SUB.L    BLSTART,D0
  2289. .BCL:    MOVE.W    (A0),D1
  2290.     MOVE.W    (A1),(A0)+
  2291.     MOVE.W    D1,(A1)
  2292.     SUBQ.L    #2,A1
  2293.     SUBQ.L    #4,D0
  2294.     BPL.S    .BCL
  2295.     BRA    GENERAL
  2296. ********************************************************************************
  2297. COUPER:    MOVE.L    MEMORY_LENGHT,D0
  2298.     CMP.L    BLEND,D0
  2299.     BEQ    GENERAL
  2300.  
  2301.     MOVE.L    MEMORY_START,A0
  2302.     ADD.L    BLSTART,A0
  2303.     MOVE.L    MEMORY_START,A1
  2304.     ADD.L    BLEND,A1
  2305.     ADDQ.L    #4,A1
  2306.     MOVE.L    MEMORY_START,A2
  2307.     ADD.L    MEMORY_LENGHT,A2
  2308.     ADDQ.L    #4,A2
  2309. .COPY:    MOVE.L    (A1)+,(A0)+
  2310.     CMP.L    A2,A1
  2311.     BNE.S    .COPY
  2312.     SUBQ.L    #4,A2
  2313. .CLEAR:    CLR.L    (A0)+
  2314.     CMP.L    A2,A0
  2315.     BNE.S    .CLEAR
  2316.     BRA    GENERAL
  2317. ********************************************************************************
  2318. DETRUIRE:    MOVE.L    MEMORY_START,A0
  2319.     ADD.L    BLSTART,A0
  2320.     MOVE.L    BLEND,D0
  2321.     SUB.L    BLSTART,D0
  2322.     ADDQ.L    #1,D0
  2323.     LSR.L    #2,D0
  2324. .CLEAR:    CLR.L    (A0)+
  2325.     SUBQ.L    #1,D0
  2326.     BNE.S    .CLEAR
  2327.     BRA    GENERAL
  2328. ********************************************************************************
  2329. VISU_BLOCK:    MOVE.L    BLSTART,START
  2330.     MOVE.L    BLEND,END
  2331.     BRA    GENERAL
  2332. ********************************************************************************
  2333. SSAVE:    MOVE.W    #2,RETURN
  2334.     RTS
  2335. ********************************************************************************
  2336. SLOAD:    MOVE.W    #3,RETURN
  2337.     RTS
  2338. ********************************************************************************
  2339. SEXPORT:    MOVE.W    #4,RETURN
  2340.     RTS
  2341. ********************************************************************************
  2342. SDELETE:    MOVE.W    #5,RETURN
  2343.     RTS
  2344. ********************************************************************************
  2345.      SECTION DATA
  2346. ********************************************************************************
  2347. MUL32:
  2348. OFF SET 0
  2349.     REPT    480
  2350.     DC.L    OFF
  2351. OFF SET OFF+320
  2352.     ENDR
  2353. ********************************************************************************
  2354. ADR:    DC.L    0
  2355. COUNTER_TXT:    DC.B    "********",0
  2356.     EVEN
  2357. ********************************************************************************
  2358. FONT:    INCBIN    8X8.FNT
  2359. ********************************************************************************
  2360. MOUSE:    DC.W    %1111111111111111
  2361.     DC.W    %1111111111111110
  2362.     DC.W    %1111111111111100
  2363.     DC.W    %1111111111111000
  2364.     DC.W    %1111111100000000
  2365.     DC.W    %1111111110000000
  2366.     DC.W    %1111111111000000
  2367.     DC.W    %1111111111100000
  2368.     DC.W    %1111011111110000
  2369.     DC.W    %1111001111111000
  2370.     DC.W    %1111000111111100
  2371.     DC.W    %1111000011111110
  2372.     DC.W    %1111000001111111
  2373.     DC.W    %1110000000111110
  2374.     DC.W    %1100000000011100
  2375.     DC.W    %1000000000001000
  2376. ********************************************************************************
  2377. NEW_PALETTE:    DC.B    000,000,0,000 *00
  2378.     DC.B    255,255,0,255 *01
  2379.     DC.B    191,191,0,191 *02
  2380.     DC.B    127,127,0,127 *03
  2381.     DC.B    095,095,0,095 *04
  2382.     DC.B    255,031,0,000 *05
  2383.     DC.B    255,255,0,127 *06
  2384.     DC.B    063,191,0,255 *07
  2385.     DC.B    255,192,0,255 *08
  2386.     DC.B    031,255,0,063 *09
  2387.     DC.B    0,0,0,0
  2388.     DC.B    0,0,0,0
  2389.     DC.B    0,0,0,0
  2390.     DC.B    0,0,0,0
  2391.     DC.B    0,0,0,0
  2392.     DC.B    0,0,0,0
  2393.     DC.B    0,0,0,0
  2394. ********************************************************************************
  2395. INTRO_MW:    *Type/Color/coordonnées/paramètre
  2396.     DC.L    "INT!"
  2397.     DC.B    "B",00,00,00,29,39
  2398.     DC.B    "B",04,01,01,28,38
  2399.     DC.B    "B",02,02,05,01,30
  2400.     DC.B    "B",03,04,02,20,36
  2401.     DC.B    "T",05,02,07,"---=== THE PURE DIGITAL SOUND Version 1.00 ===---",0
  2402.     DC.B    "T",06,04,02,"Première version d'un sampler Falcon 030:",0
  2403.     DC.B    "T",06,05,02," -> Digitalisation aux fréquences Falcon en 16 bits / Stereo",0
  2404.     DC.B    "T",06,06,02," -> Oscilloscopes en temps réel à la fréquence choisie",0
  2405.     DC.B    "T",06,07,02," -> Gestion de bloc permettant de fixer les limites à l'unité prés",0
  2406.     DC.B    "T",06,08,02," -> Selecteur de fichiers (1024 entrées) pour recherche rapide",0
  2407.     DC.B    "T",06,09,02," -> Format d'exportation 100% configurable avec une qualité maximale",0
  2408.     DC.B    "T",06,10,02," -> Réglage automatique du niveau de volume en cas de saturation",0
  2409.     DC.B    "T",06,11,02," -> Compatible NDVI et écrans RVB (480 lignes entrelacées) ou VGA",0
  2410.     DC.B    "T",06,12,02,"",0
  2411.     DC.B    "T",06,13,02,"",0
  2412.     DC.B    "T",07,15,02,"ATTENTION: Il faut exécuter le programme avec une résolution de 640",0
  2413.     DC.B    "T",07,16,02,"pixels par ligne afin que les routines TOS (selecteur de fichier,",0
  2414.     DC.B    "T",07,17,02,"textes, ...) fonctionnent correctement.",0
  2415.     DC.B    "T",07,18,02,"",0
  2416.     DC.B    "T",07,19,02,"",0
  2417.     DC.B    "W",03,25,03,01,34,1
  2418.     DC.B    "T",09,25,03," Je désire une information précise sur le logiciel et l'auteur...",0
  2419.     DC.B    "W",03,27,03,01,34,0
  2420.     DC.B    "T",09,27,03," J'ai déjà lu l'information et je veux travailler tout de suite !",0
  2421.     DC.B    "*"
  2422.     EVEN
  2423. ********************************************************************************
  2424. INFO_MW:    *Type/Color/coordonnées/paramètre
  2425.     DC.L    "PRE!"
  2426.     DC.B    "B",00,00,00,29,39
  2427.     DC.B    "B",04,01,01,28,38
  2428.     DC.B    "B",02,02,05,01,30
  2429.     DC.B    "B",03,04,02,22,36
  2430.     DC.B    "W",03,27,03,01,34,0
  2431.     DC.B    "T",05,02,05,"LISEZ-MOI au moins une fois avant d'utiliser ce logiciel...",0
  2432.     DC.B    "T",06,04,02," Ce logiciel a été écrit en 100% 68030 (toutes les routines d'afficha-",0
  2433.     DC.B    "T",06,05,02,"ge texte et graphique ainsi que les routines pour la gestion de copro-",0
  2434.     DC.B    "T",06,06,02,"cesseurs: clavier, souris, VIDEL, DMA et le reste...) donc sa compati-",0
  2435.     DC.B    "T",06,07,02,"avec des machines trafiquées est on ne peut moins certaine.",0
  2436.     DC.B    "T",06,08,02," Par contre, il ignore royalement les ROMS buggées,les logiciels rési-",0
  2437.     DC.B    "T",06,09,02,"dents comme NVDI et du réglage de la configuration au moment du lance-",0
  2438.     DC.B    "T",06,10,02,"ment.",0
  2439.     DC.B    "T",06,11,02," De toute manière, vous l'utilisez A VOS RISQUES ET PÉRILS et s'il y a",0
  2440.     DC.B    "T",06,12,02,"des dégats matériels (le hard disk qui se plante ou le DSP qui grille)",0
  2441.     DC.B    "T",06,13,02,"c'est pour votre pomme. (les routines disque sont celles du système.)",0
  2442.     DC.B    "T",07,15,02,"Ce logiciel est un SHAREWARE: Il y a à peine plus de 6000 FALCONS dans",0
  2443.     DC.B    "T",07,16,02,"l'hexagone et il ne faut pas espérer des merveilles du côté des profes-",0
  2444.     DC.B    "T",07,17,02,"sionnels donc si vous ne voulez pas que votre  machine  préférée tombe",0
  2445.     DC.B    "T",07,18,02,"dans l'oublie, faites fonctionner ce système en  France  et vous aurez",0
  2446.     DC.B    "T",07,19,02,"d'autres nouveautés à moindre prix.",0
  2447.     DC.B    "T",01,21,16," Simon VOLANT",0
  2448.     DC.B    "T",01,22,15,"8, rue Jean RACINE",0
  2449.     DC.B    "T",01,23,15,"02190  GUIGNICOURT",0
  2450.     DC.B    "T",07,25,02,"Salut aux auteurs de ZORG, Digital Tracker, Winrec, . . .",0
  2451.     DC.B    "T",09,27,03,"Allons-y pour une petite séance de digitalisation haute-fidélité !",0
  2452.     DC.B    "*"
  2453.     EVEN
  2454. ********************************************************************************
  2455. GENERAL_MW:        *Type/Color/coordonnées/paramètre
  2456.     DC.L    "GEN!"
  2457.     DC.B    "W",00,00,01,16,38,8
  2458.     DC.B    "B",04,16,00,14,40
  2459.     DC.B    "B",03,16,02,01,04
  2460. CVT5:    DC.B    "T",01,16,00,"D> ********",0
  2461.     DC.B    "B",03,16,18,01,04
  2462.     DC.B    "T",01,16,17," ********",0
  2463.     DC.B    "B",03,16,34,01,04
  2464.     DC.B    "T",01,16,33," ******** <F",0
  2465.     DC.B    "W",03,17,02,01,04,11
  2466. CVT6:    DC.B    "T",06,17,00,"DB>********",0
  2467.     DC.B    "B",03,17,18,01,04
  2468.     DC.B    "T",06,17,17," ********",0
  2469.     DC.B    "W",03,17,34,01,04,12
  2470.     DC.B    "T",06,17,33," ********<FB",0
  2471.  
  2472.     DC.B    "T",07,19,01,"Choix des sous-menus:",0
  2473.     DC.B    "W",03,21,01,01,15,3
  2474.     DC.B    "T",01,21,01,">Réglage du niveau d'entrée",0
  2475.     DC.B    "W",03,23,01,01,15,2
  2476.     DC.B    "T",01,23,01,">Réglage du niveau de sortie",0
  2477.     DC.B    "W",03,25,01,01,15,1
  2478.     DC.B    "T",01,25,01,">Réglage de la fréquence",0
  2479.     DC.B    "W",03,27,01,01,15,17
  2480.     DC.B    "T",06,27,01,">Opérations sur le block",0
  2481.  
  2482.     DC.B    "T",07,19,19,"Fonctions du digitaliseur:",0
  2483.  
  2484.     DC.B    "W",03,21,19,01,3,5
  2485.     DC.B    "T",01,21,19,"JOUE",0
  2486.     DC.B    "W",03,21,23,01,3,4
  2487.     DC.B    "T",01,21,23,"ENR.",0
  2488.     DC.B    "W",03,23,19,01,3,13
  2489.     DC.B    "T",06,23,19,"JOUE",0
  2490.     DC.B    "W",03,23,23,01,3,14
  2491.     DC.B    "T",06,23,23,"ENR.",0
  2492.     DC.B    "W",03,21,27,01,4,6
  2493. LLOOP:    DC.B    "T",05,21,27,"BOUCLE",0
  2494.     DC.B    "W",03,21,32,1,5,7
  2495.     DC.B    "T",01,21,32,"OSCILLO.",0
  2496.  
  2497.     DC.B    "W",03,16,7,01,7,9
  2498.     DC.B    "T",01,16,7,"TOUTE LA RAM",0
  2499.  
  2500.     DC.B    "W",03,17,7,01,7,18
  2501.     DC.B    "T",06,17,7,"QUE LE BLOCK",0
  2502.  
  2503.     DC.B    "W",03,16,26,01,7,10
  2504.     DC.B    "T",01,16,26,"ANCIEN  ZOOM",0
  2505.  
  2506.  
  2507.     DC.B    "W",03,23,27,01,4,20
  2508.     DC.B    "T",06,23,27,"CHARGE",0
  2509.  
  2510.     DC.B    "W",03,25,27,01,4,22
  2511.     DC.B    "T",06,25,27,"EFFACE",0
  2512.  
  2513.     DC.B    "W",03,23,32,01,4,19
  2514.     DC.B    "T",06,23,32,"SAUVE",0
  2515.  
  2516.     DC.B    "W",03,25,32,01,4,21
  2517.     DC.B    "T",06,25,32,"EXPORT",0
  2518.  
  2519.  
  2520.     DC.B    "T",07,25,19,"Divers:",0
  2521.  
  2522.  
  2523.     DC.B    "W",03,27,19,01,6,16
  2524.     DC.B    "T",08,27,19,"REPERTOIRE",0
  2525.  
  2526.     DC.B    "W",03,27,26,01,4,15
  2527.     DC.B    "T",08,27,26,"R.A.Z.",0
  2528.  
  2529.     DC.B    "W",03,27,31,01,4,0
  2530.     DC.B    "T",08,27,31,"QUITTE",0
  2531.  
  2532.  
  2533.     DC.B    "T",07,28,33,"Saturation",0
  2534.     DC.B    "T",14,29,32,"Gauche",0
  2535.     DC.B    "T",15,29,36,"Droite",0
  2536.  
  2537.     DC.B    "*"
  2538.     EVEN
  2539. ********************************************************************************
  2540. FREQUENCE_MW:        *Type/Color/coordonnées/paramètre
  2541.     DC.L    "FRQ!"
  2542.     DC.B    "B",02,02,33,19,07
  2543.     DC.B    "B",03,01,32,19,07
  2544.     DC.B    "W",02,02,33,1,5,1
  2545.     DC.B    "W",02,04,33,1,5,2
  2546.     DC.B    "W",02,06,33,1,5,3
  2547.     DC.B    "W",02,08,33,1,5,4
  2548.     DC.B    "W",02,10,33,1,5,5
  2549.     DC.B    "W",02,12,33,1,5,7
  2550.     DC.B    "W",02,14,33,1,5,9
  2551.     DC.B    "W",02,16,33,1,5,11
  2552.     DC.B    "W",02,18,33,1,5,-1
  2553.     DC.B    "T",01,02,33,"49170 Hz",0
  2554.     DC.B    "T",01,04,33,"32780 Hz",0
  2555.     DC.B    "T",01,06,33,"24585 Hz",0
  2556.     DC.B    "T",01,08,33,"19668 Hz",0
  2557.     DC.B    "T",01,10,33,"16390 Hz",0
  2558.     DC.B    "T",01,12,33,"12292 Hz",0
  2559.     DC.B    "T",01,14,33," 9834 Hz",0
  2560.     DC.B    "T",01,16,33," 8195 Hz",0
  2561.     DC.B    "T",06,18,33,"-RETOUR-",0
  2562.     DC.B    "*"
  2563.     EVEN
  2564. ********************************************************************************
  2565. OUTPUT1_MW:        *Type/Color/coordonnées/paramètre
  2566.     DC.L    "OUT1"
  2567.     DC.B    "B",02,02,24,08,16
  2568.     DC.B    "B",03,01,23,08,16
  2569.     DC.B    "T",07,02,24," Atténuation de la sortie",0
  2570.     DC.B    "T",01,04,25,"Gauche          Droite",0
  2571.     DC.B    "W",02,05,24,01,01,1
  2572.     DC.B    "B",04,05,26,01,02
  2573.     DC.B    "W",02,05,29,01,01,2
  2574.     DC.B    "W",02,05,32,01,01,3
  2575.     DC.B    "B",04,05,34,01,02
  2576.     DC.B    "W",02,05,37,01,01,4
  2577. CVT1:    DC.B    "T",01,05,23," -1   00   +1    -1   00   +1",0
  2578.     DC.B    "W",02,07,29,01,04,-1
  2579.     DC.B    "T",06,07,28," -Retour-",0
  2580.     DC.B    "*"
  2581.     EVEN
  2582. OUTPUT2_MW:        *Type/Color/coordonnées/paramètre
  2583.     DC.L    "OUT2"
  2584.     DC.B    "B",03,05,24,02,15
  2585.     DC.B    "W",02,05,24,01,01,1
  2586.     DC.B    "B",04,05,26,01,02
  2587.     DC.B    "W",02,05,29,01,01,2
  2588.     DC.B    "W",02,05,32,01,01,3
  2589.     DC.B    "B",04,05,34,01,02
  2590.     DC.B    "W",02,05,37,01,01,4
  2591. CVT2:    DC.B    "T",01,05,23," -1   00   +1    -1   00   +1",0
  2592.     DC.B    "W",02,07,29,01,04,-1
  2593.     DC.B    "T",06,07,28," -Retour-",0
  2594.     DC.B    "*"
  2595.     EVEN
  2596. ********************************************************************************
  2597. INPUT1_MW:        *Type/Color/coordonnées/paramètre
  2598.     DC.L    "IN1!"
  2599.     DC.B    "B",02,02,24,08,16
  2600.     DC.B    "B",03,01,23,08,16
  2601.     DC.B    "T",07,02,24,"Amplification de l'entrée",0
  2602.     DC.B    "T",01,04,25,"Gauche          Droite",0
  2603.     DC.B    "W",02,05,24,01,01,1
  2604.     DC.B    "B",14,05,26,01,02
  2605.     DC.B    "W",02,05,29,01,01,2
  2606.     DC.B    "W",02,05,32,01,01,3
  2607.     DC.B    "B",15,05,34,01,02
  2608.     DC.B    "W",02,05,37,01,01,4
  2609. CVT3:    DC.B    "T",01,05,23," -1   00   +1    -1   00   +1",0
  2610.     DC.B    "W",02,07,24,01,06,0
  2611. FAUTO1:    DC.B    "T",05,07,23," Automatique!",0
  2612.     DC.B    "W",02,07,32,01,06,-1
  2613.     DC.B    "T",06,07,32," -Retour-",0
  2614.     DC.B    "*"
  2615.     EVEN
  2616. INPUT2_MW:        *Type/Color/coordonnées/paramètre
  2617.     DC.L    "IN2!"
  2618.     DC.B    "B",03,05,24,04,15
  2619.     DC.B    "W",02,05,24,01,01,1
  2620.     DC.B    "B",14,05,26,01,02
  2621.     DC.B    "W",02,05,29,01,01,2
  2622.     DC.B    "W",02,05,32,01,01,3
  2623.     DC.B    "B",15,05,34,01,02
  2624.     DC.B    "W",02,05,37,01,01,4
  2625. CVT4:    DC.B    "T",01,05,23," -1   00   +1    -1   00   +1",0
  2626.     DC.B    "W",02,07,24,01,06,0
  2627. FAUTO2:    DC.B    "T",05,07,23," Automatique!",0
  2628.     DC.B    "W",02,07,32,01,06,-1
  2629.     DC.B    "T",06,07,32," -Retour-",0
  2630.     DC.B    "*"
  2631.     EVEN
  2632. ********************************************************************************
  2633. BLOCK_MW:        *Type/Color/coordonnées/paramètre
  2634.     DC.L    "BLK!"
  2635.     DC.B    "B",02,02,28,13,12
  2636.     DC.B    "B",03,01,27,13,12
  2637.     DC.B    "T",07,02,28,"Traitement du block",0
  2638.     DC.B    "W",02,04,29,01,08,1
  2639.     DC.B    "T",01,04,28,"  Volume maximum",0
  2640.     DC.B    "W",02,06,29,01,08,3
  2641.     DC.B    "T",01,06,28,"    Inversion",0
  2642.     DC.B    "W",02,08,29,01,08,4
  2643.     DC.B    "T",01,08,28,"     Enlever",0
  2644.     DC.B    "W",02,10,29,01,08,5
  2645.     DC.B    "T",01,10,28,"    Effacement",0
  2646.     DC.B    "W",02,12,29,01,08,0
  2647.     DC.B    "T",06,12,28,"     -Retour-",0
  2648.     DC.B    "*"
  2649.     EVEN
  2650. ********************************************************************************
  2651. CONVERT:    DC.B    "0123456789"
  2652.     EVEN
  2653. ********************************************************************************
  2654. DMA_AUTO:    DC.B    0
  2655. DMA_FREQ:    DC.B    1
  2656. DMA_OUTPUT_L:    DC.B    5
  2657. DMA_OUTPUT_R:    DC.B    5
  2658. DMA_INPUT_L:    DC.B    10
  2659. DMA_INPUT_R:    DC.B    10
  2660.     EVEN
  2661. ********************************************************************************
  2662. ERROR_TXT:    DC.B    27,"E",27,"f",27,"p"
  2663.     DC.B    "Une erreur s'est produite durant",13,10
  2664.     DC.B    "l'initialisation (réservation de",13,10
  2665.     DC.B    "la mémoire GEMDOS).             ",13,10
  2666.     DC.B    "                      <ABANDON!>",13,10
  2667.     DC.B    7,27,"q",0
  2668.     EVEN
  2669. PATH_ERROR_TXT:    DC.B    13,10,10,10,27,"p"
  2670.     DC.B    "Le répertoire spécifié n'est pas",13,10
  2671.     DC.B    "valide.  Utiliser un  répertoire",13,10
  2672.     DC.B    "général (Ex: A:\*.*) ou vérifier",13,10
  2673.     DC.B    "que l'unité est prête.          ",13,10
  2674.     DC.B    "                  <RECOMMENCER!>",13,10
  2675.     DC.B    7,27,"q",0
  2676.     EVEN
  2677.  
  2678. NOTHING_TXT:    DC.B    27,"E",27,"p"
  2679.     DC.B    "Il n'y a pas de fichier avec les",13,10
  2680.     DC.B    "paramètres  (le répertoire et le",13,10
  2681.     DC.B    "masque) spécifiés.              ",13,10
  2682.     DC.B    "                      <ABANDON!>",13,10
  2683.     DC.B    7,27,"q",0
  2684.     EVEN
  2685.  
  2686. SAVE_ERROR_TXT:    DC.B    27,"E",27,"p"
  2687.     DC.B    "Une erreur s'est produite durant",13,10
  2688.     DC.B    "la sauvegarde du fichier.       ",13,10
  2689.     DC.B    "                      <ABANDON!>",13,10
  2690.     DC.B    7,27,"q",0
  2691.     EVEN
  2692.  
  2693. LOAD_ERROR_TXT:    DC.B    27,"E",27,"p"
  2694.     DC.B    "Une erreur s'est produite durant",13,10
  2695.     DC.B    "le chargement du fichier.       ",13,10
  2696.     DC.B    "                      <ABANDON!>",13,10
  2697.     DC.B    7,27,"q",0
  2698.     EVEN
  2699.  
  2700.  
  2701. DELETE_ERROR_TXT:
  2702.     DC.B    27,"E",27,"p"
  2703.     DC.B    "Une erreur s'est produite durant",13,10
  2704.     DC.B    "la destruction du fichier.      ",13,10
  2705.     DC.B    "                      <ABANDON!>",13,10
  2706.     DC.B    7,27,"q",0
  2707.     EVEN
  2708. ********************************************************************************
  2709. BACKUP_TXT:    DC.B    27,"E",27,"p"
  2710.     DC.B    "********************************",13,10
  2711.     DC.B    "* SWAPPING DU BLOC SUR L'UNITÉ *",13,10
  2712.     DC.B    "********************************",13,10
  2713.     DC.B    7,27,"q",0
  2714.     EVEN
  2715. ********************************************************************************
  2716. PATH_ENT:    DC.B    27,"e",27,"E"
  2717.     DC.B    "***************************************",13,10
  2718.     DC.B    "* SELECTION DU RÉPERTOIRE DE TRAVAIL: *",13,10
  2719.     DC.B    "***************************************",13,10,10
  2720.     DC.B    "VOICI LE CHEMIN ET LE MASQUE ACTUELS:",13,10,0
  2721.     EVEN
  2722. FNAME_ENT:    DC.B    27,"e",27,"E"
  2723.     DC.B    "**********************************************",13,10
  2724.     DC.B    "* SELECTION DU NOM DU FICHIER DE SAUVEGARDE: *",13,10
  2725.     DC.B    "**********************************************",13,10,10
  2726.     DC.B    "VOICI LE NOM ACTUEL:",13,10,0
  2727.     EVEN
  2728. PATH_TXT:    DC.B    13,10,10,"ENTREZ LE NOUVEAU CHEMIN ET LE MASQUE (C:\SAMPLES\*.*) OU RIEN POUR ANNULER:",13,10,0
  2729.     EVEN
  2730. FNAME_TXT:    DC.B    13,10,10,"ENTREZ LE NOUVEAU NOM (Ex: BOUM.SON) OU RIEN POUR GARDER LE NOM PAR DÉFAUT:",13,10,0
  2731.     EVEN
  2732. SELECTEUR:    DC.B    27,"f",27,"E"
  2733.     DC.B    "-{[+],[-]&FLECHES:BOUGER ~ [ENTREE]:CHOISIR ~ [ECHAP]:ANNULE ~ [ESPACE]:RELIRE}-",13,10
  2734.     DC.B    27,"p",0
  2735.     EVEN
  2736. POS_TXT:    DC.B    27,"Y"
  2737. Y_TXT:    DC.B    32
  2738. X_TXT:    DC.B    33,27,"q","|",0
  2739.     EVEN
  2740. SEL_TXT:    DC.B    27,"Y"
  2741. Y_POS:    DC.B    32+2
  2742. X_POS:    DC.B    32
  2743. TXT_POS:    DC.B    ">",27,"D",27,"e",0
  2744.     EVEN
  2745. ********************************************************************************
  2746. FBACKUP:    DC.B    "ABCDEFGH.IJK",0
  2747.     EVEN
  2748. ********************************************************************************
  2749.      SECTION BSS
  2750. ********************************************************************************
  2751. HZOOM:    DS.L    2*32
  2752. ********************************************************************************
  2753. O_GAUCHE:    DS.L    640
  2754. ********************************************************************************
  2755. MEMORY_START:    DS.L    1
  2756. MEMORY_LENGHT:    DS.L    1
  2757. START:    DS.L    1
  2758. END:    DS.L    1
  2759. FLOOP:    DS.W    1
  2760. BLSTART:    DS.L    1
  2761. BLEND:    DS.L    1
  2762. ********************************************************************************
  2763. KEY:    DS.W    1
  2764. FMOUSE:    DS.W    1
  2765. BOUTON:    DS.W    1
  2766. MOUSEX:    DS.W    1
  2767. MOUSEY:    DS.W    1
  2768. EXMOUSE:    DS.L    1
  2769. ********************************************************************************
  2770. ECR:    DS.L    1
  2771. FCHK:    DS.W    1
  2772. FVBL:    DS.W    1
  2773. ********************************************************************************
  2774. * ROUTINES INITIALISATION/RESTITUTION
  2775. SAVE_ALL:    DS.L    511
  2776. NEW_SP:    DS.L    1
  2777. OLD_SP:    DS.L    0
  2778. CRASH_TEST:    DS.L    1
  2779. RESOL:    DS.B    64
  2780. PALETTE:    DS.L    256
  2781. ********************************************************************************
  2782. ACTUAL:    DS.L    1
  2783. NB_BOUTONS_MW:    DS.L    1
  2784. BOUTONS_MW:    DS.B    1024
  2785. ********************************************************************************
  2786. SPRITE:    DS.W    16*16*4
  2787. BACK_SPR:    DS.W    16*2*4
  2788. ECRAN:    DS.B    (480*320)+256
  2789. EFF_BUFFER1:    DS.L    2*640
  2790. EFF_BUFFER2:    DS.L    2*640
  2791. ********************************************************************************
  2792. HANDLE:    DS.W    1
  2793. PATH:    DS.B    128-16
  2794. FNAME:    DS.B    168
  2795. FILE_NAME:    DS.B    128
  2796. STARTBIS:    DS.W    1
  2797. DTA:    DS.B    44
  2798. DIR:    DS.B    16*NBR_FIC
  2799. ********************************************************************************
  2800. RETURN:    DS.W    1
  2801. ********************************************************************************
  2802.     DS.W    127
  2803. NEW_USP:    DS.W    1
  2804.     END
  2805.